問題タブ [sysv-ipc]
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 - Linux System V Msg Queues の待機中のリーダー/ライターを見つけるにはどうすればよいですか?
私は、System V キューを使用する C/C++ コードを HP-UX から Red Hat Linux (SVr4) に移植する任務を負っています。
ほとんどの呼び出しは問題なく変換されましたが、特定のキューで待機中のリーダーとライターを検出することに関連する特定の問題が 1 つあります。
HP ではmsgctl(IPC_STAT)
、特定のキューに関する詳細を含む msqid_ds 構造体を取得するために使用できます。
この構造体の詳細には short 値msqid_ds.msg_perm.mode
があり、下位 9 ビットを使用して、ユーザー/グループ/その他の読み取り/書き込みアクセス許可を指定します。
ただし、HP では、上位 7 ビットには、2 つのフラグに続くフラグを含む他の状態情報が格納されます。
これにより、たとえば、(msqid.msg_perm.mode & (MSG_RWAIT | MSG_WWAIT))
キューでブロックされているリーダーまたはライターがあるかどうかをテストできます。
Linux に移植しているので、この機能が同じではないことは明らかです。これらのフラグの定義は存在せず、 の値にmsqid_ds.msg_perm.mode
は明らかに上位ビット情報がありません。
しかし、確かに、これらのキューのリーダーとライターが維持されるカーネル操作があります。この情報を発見するために何らかの操作を呼び出すことができることを願っています。
php - PHP sem_get 関数が失敗する
予約サービスに使用されるデータベース テーブルへの挿入に対するアクセス制御を実装しました。しばらくの間は問題なく動作しますが、関数は毎回sem_get()
呼び出すにもかかわらず失敗します。sem_release()
sem_get()
私も電話sem_remove()
したほうがいいですか?
このサイトの手順に従いました。
c - 削除する前に共有メモリから切り離す
共有メモリを使用していくつかのプロセスを実行しているときに、1 つを除いてすべてのプロセスを切り離します。
shmctl()
(そのプロセスで)共有メモリを削除する前に、最後のプロセスを切り離すことは理にかなっていますか?- それが意味をなさない場合、共有メモリを切り離した後に削除することは可能ですか?