私の環境では次の php ファイルを作成しました:
$msg_key = ftok(__FILE__, 'a');
$seg = msg_get_queue($msg_key, 0666);
次に、次のコマンドを使用します。実行する行はエラーを出力しません
ただし、Web ページが実行されると、次のエラーが発生します:
警告: msg_get_queue(): キー 0x610005bd で失敗しました: ファイルは /var/www/html/test/sysvmsg に存在します。 . php on line 4
午後中ずっと悩んでいます、アドバイスをください
私の環境: linux + apache + php 5.3.3
echo 100 > /proc/sys/fs/mqueue/msg_max
msg_get_queue はメッセージを送信します
16 進数の 0x610005bd は 10 進数の 16 27391 421
これは送信された番号ではありませんか?
*NIX ボックスでこのメッセージが表示される場合:
警告: msg_get_queue() [function.msg-get-queue]: キー 0x12345678 で失敗しました: /path/to/script.php のデバイスにスペースが残っていません1 行目
メッセージ キューをクリアするには、root としてコマンド "ipcrm" を使用できます。詳細については、"man ipcrm" を使用してください。
キュー内の最大メッセージのデフォルト設定は、/proc/sys に保存されます。 /fs/mqueue/msg_max を最大 100 メッセージに増やすには、次を実行します:
echo 100 > /proc/sys/fs/mqueue/msg_max
適切なプログラミング スタイルに従って、すべてを閉じる/解放してください。これらの警告メッセージを回避するために、スクリプトが終了する前にメッセージがキューに追加されます。
これはマニュアルからのものであり、あなたの状況と一致しています。
root としてコマンド ipcrm を使用してメッセージ キューをクリアし、man ipcrm を使用して詳細情報を取得できます。
キュー内のデフォルトの最大メッセージは /proc/sys/fs/mqueue/msg_max に保存されます。最大 100 個のメッセージを追加する場合は、
echo 100 > /proc/sys/fs/mqueue/msg_max を実行します。
http://www.baidu.com/baidu?wd=Warning%3A+msg_get_queue%28%29%3A+failed+for+key+0x610005bd%3A+File+exists+in+%2Fvar%2Fwww%2Fhtml %2Ftest%2Fsysvmsg .php+on+line+4&tn=monline_dg