POSIX キューをいじっていて、問題が発生しました。新しいキューを作成するとき、たとえば、メッセージのサイズと、キューに入れることができるメッセージの数を指定できます。私の通常の制限は 10 です
/proc/sys/fs/mqueue/msg_max
プログラムの実行中に変更する簡単な方法はありますか?
echo number > /proc/sys/fs/mqueue/msg_max
そのようなものを設定するためのシステムコールが存在する可能性があります。
POSIX キューをいじっていて、問題が発生しました。新しいキューを作成するとき、たとえば、メッセージのサイズと、キューに入れることができるメッセージの数を指定できます。私の通常の制限は 10 です
/proc/sys/fs/mqueue/msg_max
プログラムの実行中に変更する簡単な方法はありますか?
echo number > /proc/sys/fs/mqueue/msg_max
そのようなものを設定するためのシステムコールが存在する可能性があります。
いいえ。
その制限はシステム全体の制限です。それが にある理由/proc/sys
です。変更したい場合は、echo
すでに示したコマンドを使用する必要があります。
キューは作成時に設定され、途中で変更することはできません。キューの作成時に特権ユーザーとして実行することで、キュー メッセージの数を増やすことができます。そのため、別のプログラムを (PU として) 実行してキューを作成するか、PU として実行してキューを作成し、完了したら特権を削除する必要があります。増加できるメッセージの数は、キューの全体的なサイズによってまだ制限されているため、何らかの分割を行う必要があります (少量のオーバーヘッド bye を差し引いたもの)。グーグルで検索すると、これには簡単な式があります。
最後にこれを見つけました: Re: POSIX Message Queues
/etc/sysctl.conf を編集して次の行を追加します。
# メッセージキューを増やす
fs.mqueue.msg_max = 100
Raspbian で動作します