問題タブ [fcntl]
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.
c - 受け入れるソケットをノンブロッキングにすることは可能ですか (そして安全ですか)?
accept()
ブロッキング ソケットで呼び出しを中断する方法を探しています。これはライブラリにあることを意図しており、ユーザーシグナルを乱雑にしたくないため、シグナルを使用することはオプションではありません。使用select()
は別のオプションですが、さまざまな理由で、私の場合はあまり魅力的ではありません。
可能であれば、ソケットが呼び出しでブロックされている間に、別のスレッドから( fcntl()
and を使用して) ソケットを非ブロック モードに設定するとうまくいきます。予想される動作は、呼び出しがorで返されることです。O_NONBLOCK
accept()
accept()
EAGAIN
EWOULDBLOCK
errno
それは本当にそのように機能しますか?安全ですか?ポータブル?
WSAIoctl()
この方法の Windows への適用可能性 (およびを使用する必要がある場合FONBIO
) について知っている場合は、私も興味があります。
c - fcntlはソケットfdの不正なファイル記述子を検出しません
fcntl(sockfd,F_GETFD,0)
不正なファイル記述子を検出しませんselect
が、同じsockfdでは不正なファイル記述子エラーが発生します。
c - POSIX ファイル ロックは再入可能ですか?
を通じてPOSIX強制ファイル ロックを使用していますfcntl
。それらのロックが再入可能かどうか、つまり. プロセスは、すでに所有しているロックを取得できますか?
c++ - ヘッダー fcntl.h および unistd.h を使用してファイルの読み取りと書き込みを行うにはどうすればよいですか?
ヘッダー ファイル<fcntl.h>
と<unistd.h>
. 彼らの手順の動作をテストするために小さな例を作成しましたが、期待どおりに機能しませんでした。これが私のコードです:
入力ファイルは次のとおりです。1 2 3 4 5 6 7 8 9 10
プログラムは正常にコンパイルされましたが、出力ファイルは作成されませんでした。私のコードの何が問題なのか誰か教えてもらえますか? 前もって感謝します。
python - Python スクリプトの同時実行インスタンスを防止する
重複の可能性:
Python: プログラムの単一インスタンス
ジョブの完了にランチャー間隔よりも長い時間がかかる場合、cron ジョブが同時インスタンスを実行しないようにする必要があります。これを実現するために群れの概念を使用しようとしていますが、fcntl モジュールが期待どおりに動作していません。
これが2つの同時インスタンスを防ぐために機能する理由を誰か教えてください:
そして、これが機能しない理由:
python - Pythonのfcntl.ioctlで「op」とはどういう意味ですか?
fcntl のドキュメントによると、の使用法fcntl.ioctl
は次のとおりです。
としてop
定義された
op が「何であるか」には答えません。それはintですか?文字列?構造?Linux プラットフォームなどでこのコマンドを適切に使用するにはどうすればよいですか?
python - Python の fcntl.ioctl の呼び出しで無効な引数エラーが発生するのはなぜですか?
次の方法でfcntl.ioctl
pythonのfcntlパッケージのコマンドを利用しようとしています
file_handler
つまり、 で作成されたファイル ハンドラーを含む、3 つのバージョンすべてopen
です。それぞれが私に同じエラーを与えます:
簡単な質問: に適切に電話をかけるにはどうすればよいfcntl.ioctl
ですか? それともfcntl.fcntl
代わりに使う?
linux - Perl を使用して HDIO_GET_IDENTITY を読み取る方法
perlを使ってLinuxでHDIO_GET_IDENTITYを読み出したいと思っています。Fcntl モジュールを使用しようとしていますが、Perl モジュールのドキュメントがあまり説明的でないことがわかりました。誰でもこれを行う方法を教えてもらえますか?
ruby - File#flock を使用して排他ロックの非ブロック要求を行うにはどうすればよいですか?
ノンブロッキング ロックを要求するにはどうすればよいですか?
ファイルを個別にロックしようとすると、 Ruby のFile#flockが期待どおりに機能しないのはなぜですか? ブロック内のファイルをロックすることは、この問題の正しい解決策ではありません。ポイントは、永続的なロックでのロックの動作を示すことだからです。ブロック内で File#flock を使用すると、ブロックの終了時にロックが解除されるため、問題が適切に示されません。
File#flock は、特にノンブロッキング ロックを要求する場合に、さまざまな方法で失敗します。以下にいくつかの例を示します。
File#flock の失敗例
#flock はロック要求をタイムアウトにする方法を提供しないため、複数の排他ロックを使用すると無限に待機します。
/li>ファイルが排他的にロックされているときに非ブロッキング ロックを要求すると、無効な引数の例外が発生します。
/li>ドキュメントには、#flock は「locking_constant (以下の表の値の論理和) に従ってファイルをロックまたはロック解除する」と記載されています。ただし、論理 OR はプラットフォームによっては
/li>Errno::EINVAL
orを発生させます。Errno::EBADF
ネイティブ File#flock ソリューションを推奨
排他ロックを取得できない場合はTimeout モジュールを使用して発生させることTimeout::Error
ができますが、File#flock はこの問題をネイティブに解決できるはずです。では、実際にブロックせずに排他ロックを要求するにはどうすればよいのでしょうか?