問題タブ [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.
linux - linux fcntl - フラグの設定解除
fcntl を使用して既に設定されているフラグを設定解除するにはどうすればよいですか?
たとえば、次を使用してソケットを非ブロックモードに設定できます
今、私は O_NONBLOCK フラグを設定解除したいと思います。
fcntl(sockfd, F_SETFL, flags | ~O_NONBLOCK) を試してみました。エラーEINVALが発生しました
perl - Windows 上の Perl の flock() はどこにありますか?
Strawberry PerlまたはActivePerlのいずれかを使用して、Windows で実行したい Perl スクリプトがあります。私は気にしません。ただし、このスクリプトはflock()
呼び出しを使用しており、これらのバージョンの Perl には含まれていないようです。
これを起動して実行するのを手伝ってくれる人はいますか?
apache - solarisのfcntlがF_SETLKWに対して-1未満の値を返すのはいつですか
ソラリスのfcntlのMannulから、正常に完了すると、F_SETLKWに返される値は「-1以外の値」になります。ただし、Apache httpd 1.3.41ソースコード(http_main.c)は、戻り値が次のように正であるかどうかを確認します。
非常にまれなケースですが、この失敗したテストが原因で、システムの1つにあるapacheが終了します。これは、fcntlによって返された-1未満の負の値が原因であると思われます。
では、solarisのfcntlはいつ-1未満の値を返しますか?
c++ - fcntlはC++のコンパイルで問題が発生します
このコードは、fcntl.hと、open()、write()、close()などの定義されたファイル処理関数を使用します。コードは意図したとおりにコンパイルおよび動作します。
CPPソースコードとして使用すると、GCCが文句を言うのはなぜですか?そして不思議なことに、なぜそれがopen()に文句を言わないのですか?ここで何が起こっているのでしょうか?
c++ - スレッドまたはプロセスの同期のためのfcntl()?
(セマフォレスの代わりに)スレッド/プロセスの同期を実現するためにファイルでfcntl()システムコールを使用することは可能ですか?
unix - ファイルのr/wロックとリンク解除
次の問題があります。各セッションデータがセッションIDで名前が付けられた単純なファイルに保存されるファイルシステムベースのセッションストレージを作成したいと思います。
次のAPIが必要です:write(sid,data,timeout)
、、ここread(sid,data,timeout)
でremove(sid)
sid ==ファイル名、また、すべてのタイムアウトセッションを削除する可能性のあるある種のGCが必要です。
単一のプロセスで作業する場合は非常に単純なタスクですが、複数のプロセスで作業する場合、またはNFSを介して作業する場合でも、絶対に簡単ではありません。
私が考えた最も簡単な解決策は次のとおりです。
ファイルのリンク解除がファイル名で機能し、ファイルロックがファイル記述子で機能するという最大の問題。したがって、上記は次のシナリオでは機能しません。
誰かがそのような問題がどのように解決されるかについての考えを持っていますか?ファイルロックとファイル削除を組み合わせたり、ファイルをアトミックに操作したりできるトリックはありますか?
ノート:
- データベースを使いたくない、
- Unixの解決策を探しています
- ソリューションは、fcnl、open、close、unlinkなどの標準のPOSIX呼び出しで機能する必要があります
ありがとう。
明確化の主な問題は、ファイルの操作(names --unlink)は、ファイル記述子の操作--lockingを使用してアトミックに実行する必要があることです。
- 開いてリンクを解除します-ファイルを操作します
- fnctl--記述子を処理します
fcntl - パラメータ F_DUPFD を持つ fcntl の目的は何ですか
/etc/netconfig
私はオラクルプロセスを追跡し、最初にファイルをファイルハンドルとして開き、次にパラメーターを使用して呼び出す11
ことで複製し、次に元のファイルハンドルを複製することを発見しました。後でファイルハンドルを使用して読み取ります。では、ファイル ハンドルを複製するポイントは何でしょうか。元のファイル ハンドルで作業しないのはなぜですか?256
fcntl
F_DUPFD
close
11
256
python - fcntlロックを使用した共有mmap調整?
(Linuxまたは他のUNIXライクなシステムからの)共有メモリに使用する場合、マッピングへのアクセスを調整するために使用(または機能)mmap()
することは可能(および移植可能)ですか?fcntl()
flock()
lockf()
このSOの質問への回答は、それが機能するはずであることを示唆しているようです。
私が念頭に置いているのは、共有メモリをプロセス/ページマップで構造化して、ロックの競合を最小限に抑えることです。プロセスはそれぞれのページで同時に動作する可能性があり、プロセス/ページのマッピングを更新するときにのみロックを取得する必要があります。(所有されていないページからの読み取りアクセスには、シリアル番号の確認、目的のデータのコピー、およびそのブロックのシリアル番号が変更されていないことの検証が含まれます)。
概念的には、このファイルマッピングを共有する各プロセスは、を実行しmmap()
、その中の空きブロックを見つけ、プロセス/ページ領域へのロックを取得し、それを独自の割り当てで更新し、ロックを解放してから、楽しく作業を続けます。どのプロセスでも、古いマッピングを検索し(kill()
シグナルとしてゼロを使用)、プロセス/ページテーブルのマッピングをクリーンアップできます。
(大まかに言えば、私はLinux上でPythonの共有メモリを使用する生産者/消費者処理エンジンをいじっています。ソリューションがBSDや他のプログラミング言語に移植可能であることを望んでいます---サポートがあればmmap()
に必要なインターフェイスfcntl()
、flock()
またはlockf().
ロックの競合を測定して同期の失敗を検出する方法を示す疑似コードにも興味があります。それぞれのオブジェクトを使用したスレッド化とマルチプロセッシングQueue()
が、実装するための最も簡単な方法であることを認識しています。 Pythonプロデューサー/コンシューマー処理モデル)。
c++ - cygwin を使用して C++ コードをコンパイルする際の問題
cygwin (Windows 7) でいくつかのソース コードをコンパイルしようとしていますが、make ファイルを実行すると次のエラーが発生します。
問題のファイルは次のとおりです。
何が起こっているのかわかりません。ファイル fcntl.h が利用可能であり、このスコープで宣言されていないという変数は、ファイルを単独でコンパイルしてもエラーになりません。
どんな助けでも大歓迎です
どうもありがとう