6

POSIX キューをいじっていて、問題が発生しました。新しいキューを作成するとき、たとえば、メッセージのサイズと、キューに入れることができるメッセージの数を指定できます。私の通常の制限は 10 です

/proc/sys/fs/mqueue/msg_max

プログラムの実行中に変更する簡単な方法はありますか?

echo number > /proc/sys/fs/mqueue/msg_max

そのようなものを設定するためのシステムコールが存在する可能性があります。

4

3 に答える 3

4

いいえ。

その制限はシステム全体の制限です。それが にある理由/proc/sysです。変更したい場合は、echoすでに示したコマンドを使用する必要があります。

于 2012-05-13T08:00:06.540 に答える
2

キューは作成時に設定され、途中で変更することはできません。キューの作成時に特権ユーザーとして実行することで、キュー メッセージの数を増やすことができます。そのため、別のプログラムを (PU として) 実行してキューを作成するか、PU として実行してキューを作成し、完了したら特権を削除する必要があります。増加できるメッセージの数は、キューの全体的なサイズによってまだ制限されているため、何らかの分割を行う必要があります (少量のオーバーヘッド bye を差し引いたもの)。グーグルで検索すると、これには簡単な式があります。

于 2012-05-21T01:13:43.340 に答える
2

最後にこれを見つけました: Re: POSIX Message Queues

/etc/sysctl.conf を編集して次の行を追加します。

# メッセージキューを増やす

fs.mqueue.msg_max = 100

Raspbian で動作します

于 2019-10-01T21:00:59.333 に答える