問題タブ [msgrcv]
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 - IPC メッセージ キュー。msgrcv システムコール。システム V. ループから抜け出す方法
ループ内でメッセージを取得するメッセージ キューがあります。問題は、ループを終了する方法がわからないことです。msgrcv は size_t 型を返すため、続行します。ループを終了するには、戻り値とどの値を比較すればよいですか?
c - UNIX メッセージ キュー msgrcv がメッセージを受信できませんでした
親愛なる友人へ、なぜ msgrcv が空のバッファを受信しているのか、何か考えはありますか?
コードは次のとおりです。
c - msgrcv で空のメッセージが表示される
IPC キューを介して互いにメッセージを送受信する 2 つのプログラムがあります。ただし、msgrcv 関数は、キューを介して実際に送信されたものを受信する代わりに、空白のメッセージを取得することがあります。うまくいくと思われる修正をコメントアウトしましたが、ここで確認して、これが msgrcv と msgsnd を使用する適切な方法であるかどうかを確認したかったのです。
msgrcv:
メッセージ数:
c - Cでのメッセージの受け渡し/Cの構造体からのchar配列の出力
親プロセスにメッセージを渡すためにこのプログラムを作成しました。親プロセスが受信したメッセージを出力するようにします。私はcでのプログラミングにまったく慣れていないので、これがchar配列の読み取りまたはメッセージパッシングの問題であるかどうかはわかりません。これが私の試みです:
私の質問は、このコードをコンパイルして実行すると、送信用のメッセージが表示されないのはなぜですか?
c - 中断されたシステム コール
以下に示すように、メインから 3 つ以上のタイマーを実行し、メイン セクションで 1 つのメッセージ キューを定義しました。タイマーの有効期限は 10 (最大) です。タイマーが切れると、"msgrcv" が "Interrupted system call" のようなエラーを出すのはなぜですか?
linux - msgrcv を使用して動的な長さのコンテンツを読み取る
msgrcv 関数を使用して、メッセージ キューからメッセージを読み取ります。既知の長さのデータを読み取ると、正常に動作します。場合によっては、メッセージの長さが可変です。そのような方法で、必要な量のメモリのみを割り当て、メッセージ キューからデータを失うことなくメッセージ キューからメッセージを読み取ることができます。この問題を克服するためのアイデアを教えてください。
注: IBM メッセージ キューでは、長さを超えたデータを読み取ると、mqget 関数を渡す構造体にメッセージの実際のサイズが入力されます。このように、メッセージキューでこの操作を行う方法はありますか?
c - IPC msgrcv - 特定の 2 種類のメッセージのみを受信する
問題があります。
私にはプロセスがあります。それはクライアントであり、サーバーと呼ばれるプロセスです。クライアントとサーバーは、同じキューによって相互に通信します。クライアントがサーバーにメッセージ (リクエスト) を送信すると、サーバーはそれを処理し、確認または失敗のメッセージをクライアントに送り返す必要があります。long type = 1500101
確認には があり、失敗にはがあるとしましょうlong type = 1500102
。
(C で msgrcv を使用して) これら 2 種類のメッセージ (クライアント) のみを待機することは可能ですか? そうでない場合、そのようなメカニズムを実行する最善の方法は何ですか?
message-queue - IPC キュー内のメッセージの順序付け方法
IPC キュー内のメッセージが順序付けされているかどうかを知る必要があります。実際には、msgrvc 関数を呼び出したときに最初のメッセージがキューに入力されたのか、選択されたメッセージがランダムなのかを知る必要があります。
さて、私がこの質問をしたのは、コード msgrcv の一部の内部で、そのコードを意図していないメッセージを受け取ったときに、通常、メッセージを再キューイングし、キュー内の次のメッセージを読み取るためです。私が疑問に思っているのは、たとえば、彼がメッセージをフォローしている場合、
msgA、msgB、msgC
、キュー内に格納されています
msgB、msgC、msgA
したがって、次の msgrcv の呼び出しで msgB が返されるか、またはその順序がランダムな場合は、再度 msgA を読み取ることができます
ありがとう、エンツォ