ホームページ > バックエンド開発 > PHPチュートリアル > 注: 警告: msg_get_queue(): キー 0x610005bd で失敗しました: ファイルは次の場所に存在します

注: 警告: msg_get_queue(): キー 0x610005bd で失敗しました: ファイルは次の場所に存在します

WBOY
リリース: 2016-06-23 13:55:10
オリジナル
1653 人が閲覧しました

私の環境では次の 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


ディスカッションへの返信 (解決策)

php を見てください。ドキュメントには http://php.net/msg_get_queue


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

ftok は整数を返します

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

最終的な理由は次のとおりであることが判明しました: SELinux が閉じられていません

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート