問題タブ [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 - lseek はファイルのリダイレクトで機能しますか?
では通常lseek
動作しませんstdin
。
しかし、次のようにプログラムを実行するとどうなるでしょうか。
./a.out < filename
現在stdin
はファイルであり、キーボードではありません。
lseek
そこで働きますか?
僕にできる
lseek(0, -1, SEEK_CUR)
と同じ効果が得られます
ungetc()
?
c - O_RDWR の読み取りおよび書き込みアクセスのためにファイルをロックする方法
読み取り/書き込みのためにファイルをロックする方法についての答えが見つかりません。
以下のコードは正しいですか?
perl - 以下のコードを使用して、replace.exe の単一インスタンスが実行されていることを確認しました。
以下のコードを使用して、replace.exe の単一インスタンスが実行されていることを確認しました。replace.exe を作成して Windows で実行すると、サイズが 0 kb の replace (拡張子なし) という名前のファイルがもう 1 つ作成されます。
そのファイルを作成したくありません。それ以外の場合は、replace.exe の実行が終了した後にファイルを自動的に削除します。
助けてください。ありがとう
c - ファイルで exec() を呼び出す前に、マウント ポイントに noexec が設定されていることを検出しますか?
私のプログラムは、ユーザーが指定したディレクトリに書き込まれたバイナリに対して exec() を呼び出します。ディレクトリが「noexec」でマウントされたツリーにある場合、exec() は EACCES で失敗します。
exec() に失敗する代わりに、ディレクトリが noexec でマウントされているかどうかを確認できるようにしたいのですが、fcntl()、stat()、または mount() のいずれもこの情報を返しません (マンページの読み取りから)。exec システム コールのカーネル ソースを見ると、この情報は inode のメタデータに格納されているように見えますが、この情報がどのシステム コールからも返されていません。
これを行う方法を知っている人はいますか?
ありがとう。
c - ファイル記述子を -1 として、cmd を F_GETFL として呼び出される fcntl() を呼び出す目的は何ですか?
このコード行の意味を理解しようとしています:
c - "fcntl()" で pid ファイルをロックおよびロック解除する方法
fcntl()
pid ファイルのロックとロック解除に使用する例を見つけるために、ネットやスタックオーバーフローでさえ調査を行いましたが、"/var/run/myapp.pid"
その明確な例は見つかりませんでした。
fcntl()
pid ファイルのロックとロック解除に使用する例を教えてください。
ロックをブロックしないでください (ファイルがすでにロックされている場合)
c - 方法 - ファイル ロックを使用した行列要素の合計 (unix - C/C++)
私はM[nxn]
行列を持っており、次の基準を考慮して [n, n] ポイントの要素の合計を計算する必要があります:
-行または列をランダムに選択します。
- その行または列の最後の要素の要素を合計し、他の要素を 0 に設定します。
ここでの問題は、複数のプロセスを使用してこの合計を行う必要があるため、作業している各行または列をロックする必要があることです。どうすれば解決できますか?およびそれに属する他のいくつかのもの
を使用する必要があることは知っていますが、それを解決する方法に興味があります。
(アドバイスありがとう!)fcntl()
linux - Linux でロックされたファイルをアトミックに作成するにはどうすればよいですか?
シナリオ: ネット経由でファイルをフェッチする必要があるプロセスを多数実行しています。ファイルが既にダウンロードされている場合は、ディスクにキャッシュします。別のプロセスがファイルをダウンロードしている場合は、ダウンロードが完了するまでブロックします。
これを行う最も簡単な方法を見つけようとしています。明らかな方法は次のとおりです。
このシステムは、(一見) 競合状態なしで上記の目標を達成します。
残念ながら、open() などを使用して Linux でロックされたファイルを作成する方法に関するドキュメントは見つかりませんでした。作成ステップを次のように分割すると:
作成とロックの間に競合状態が存在するようになりました (非作成プロセスは、作成者がロックを取得する前にロックを取得します)。
ファイルごとに外部ロックファイル (例: filename + '.lock) を使用できることに気付きました。これは、ファイル名を作成する前に取得しますが、これは.. 洗練されていないと感じます (そして、実際に.lock サフィックス!)
とにかくアトミックに作成してロックする方法はありますか(Windowsが提供するように)、または外部ロックファイルメソッドは標準/必須のものですか?
c - 別のプロセスから fcntl ロックを強制的に削除する
これらの範囲をロックしていないプロセスから、ファイルの fcntl バイト範囲ロックを削除する方法はありますか?
ファイルにバイト範囲ロックを設定するプロセスがいくつかあります。基本的に考え出す必要があるのは、指定したファイルのバイト範囲ロックを削除するのに役立つ外部ツールです。