問題タブ [os-dependent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 行末の「^M」文字
Unix環境で特定のSQLスクリプトを実行すると、コマンドラインにエコーされるため、SQLスクリプトの各行の最後に「^M」文字が表示されます。SQLスクリプトが最初に作成されたOSがわかりません。
これを引き起こしているのは何ですか?どうすれば修正できますか?
java - file.createNewFile()は、実際の作成時刻より前に最終変更時刻のファイルを作成します
JPollerを使用して特定のディレクトリ内のファイルへの変更を検出していますが、実際の作成時刻よりも前のタイムスタンプで終わるため、ファイルが見つかりません。テスト方法は次のとおりです。
そして、これが私が出力のために得るものです:
結果は競合状態です:
- JPollerは最後のチェックの時間をxyzとして記録します...123
- xyzで作成されたファイル...456
- ファイルの最終変更タイムスタンプは実際にはxyz...000を読み取ります
- JPollerは、タイムスタンプがxyz...123より大きい新しい/更新されたファイルを探します
- xyz...000はxyz...123より小さいため、JPollerは新しく追加されたファイルを無視します
- しばらく髪を抜く
コードを掘り下げてみましたが、どちらlastModified()
もcreateNewFile()
最終的にはネイティブコールに解決されるため、情報がほとんど残っていません。
の場合test.9
、私は957ミリ秒を失います。どのような精度が期待できますか?結果はオペレーティングシステムやファイルシステムによって異なりますか?推奨される回避策は?
注:現在、XFSファイルシステムを使用してLinuxを実行しています。でクイックプログラムを作成しましC
たが、statシステムの呼び出しはst_mtime
として表示されtruncate(xyz...000/1000)
ます。
更新:NTFSを使用するWindows 7で上記と同じプログラムを実行しましたが、完全なミリ秒の精度が維持されます。MSDNリンク@mdmaは、FATファイルシステムが10ミリ秒の解像度で作成する場合は正確ですが、アクセスは2秒までしか正確ではないことをさらに示しています。したがって、これは本当にOSに依存します。
c++ - サーバークライアントアプリ、サーバー側でクライアントデータを処理するクリーンな方法を考えるのに問題があります
Linux上のC++で記述されたサーバークライアントアプリがあります。クライアントがサーバーに接続すると、サーバーは、クライアントがサーバーコマンドを送信して実行するのを待つスレッドを生成します。コマンドはOSに依存します。クライアントがサーバーと通信しているスレッドは、クライアントが必要とする必要なコマンドを実行するグローバル関数を呼び出します。したがって、OSに依存するコマンドごとに、クライアントがサーバーに送信して実行する2つの関数が必要です。これらのグローバル関数はすべて、メインスレッド関数と同じヘッダーで定義されています。さまざまなOSのこれらすべての機能が少し面倒になっています。私の考えは、WindowsFuncsとLinuxFuncsと呼ばれる2つのクラスを作成することです。これらのクラスには、クラスが設計されたOSに必要なコマンドを実行する静的メンバー関数があります。
javascript - OSに依存しないキーボードイベントから文字へのマッピング
明らかに、Webアプリケーションはユーザーのキーボード設定に合わせる必要がありますよね?KeyDownではなく実際のKeyPressイベントに接続するようにDojoに指示する方法はありますか?そうすれば、文字を入力することができますevent.charCode
か?
私たちは複数のオペレーティングシステムなどを備えた国際的な世界に住んでいるため、ブラウザにオペレーティングシステムに問い合わせる機能が組み込まれていない限り、この情報ではユーザーが実際に入力した文字を見つけるのに十分ではありません。
例として、Linuxのドイツ語キーボードでは、[Alt Gr-8を介して到達します。AltGr-8は、Altのキーダウンを送信し、次に[を使用してキーダウンを送信します。いいでしょう、最初の部分は無視してください。ドイツ語キーボードを使用するWindowsシステムでは、2番目のイベントはctrlKeyとaltKeyがtrueに設定された8の場合です。他のキーボード設定では、このキーコンボは実際には別の文字を意味するため、JavaScriptコードはハードコードされたものを解釈する必要はないと思います。
別の例として(おそらくDojoに接続されていませんが、別のプログラマーの不具合、暴言を言って申し訳ありません…)、MacのUSキーボードでは、OutlookWebインターフェイス内にドイツ語の文字ßを入力できません。 !)Altキー(Macでは入力された文字を変更するためにのみ使用されます)をハイジャックしてアクションをトリガーし、alt-sを再マップして送信を意味します。もちろん、通常は単語の途中です。
scala - 文字列テンプレートのScalaと行末
組み込みサーバーからのHTTP応答を検証する受け入れテストを作成しています。だからそれは
これまでのところ、Linuxボックスでは非常にうまく機能しますが、Windowsでテストを呼び出すと、失敗します。
これは行末が原因だと思います。WindowsとLinuxでは行末が異なります。コンパイルされたテストデータでOS固有の行末を提供する簡単な方法はありますか?
python - Python ロギング モジュールでの OS 依存の動作
この質問と回答に従って、次の問題の解決策を探しています。
Windows と Linux の両方で実行されるはずの Python プログラムがあります。
私のpythonプロセスは子プロセスを生成し、両方にファイルロガーが必要です。それぞれが独自のログファイルにログインするようにします。
プロセスの作成:
ログの作成:
Windows では問題なく動作しますが、Linux では、子ログと親ログの両方に子出力が書き込まれました。
そのようなシナリオに対処する最善の方法は何ですか?
c# - MT 環境で .Net Core を使用してデスクトップ アプリケーションのプロパティ変更を発生させる推奨される方法は何ですか?
過去 10 年間、UI スレッドが確実に通知を受け取るようにするために、「Dispatcher」で WPF を使用していました。基本「モデル」クラスで次のようなコードを使用していました。
このSO Questionでは、AsynContext について話す人もいれば、Windows OS に依存していると思われる nuget パッケージ「Microsoft.NET.Sdk.WindowsDesktop」を追加する人もいます。
新しいデスクトップ アプリケーションで同等のことを行うには、どのような方法が推奨されますか? ディスパッチャはどこにありますか? 同等のものはありますか?コードを OS に依存しないように維持できますか? Microsoft が OS に依存しないソリューションを提供するまで、あと数か月待つ必要がありますか?