WebサーバーでPHPを実行する共有メモリ領域があります。PHPは共有メモリのバイナリデータを読み込みます(uint32 x = shmop_read(...))
Byte Range Value
------------------ -----------------------------------------------
0 - 3 32-bit unsigned integer - call it numBytes
4 - (numBytes + 4) char array - The actual data, total of numBytes
:共有メモリはバイト残り、共有メモリ領域内の有効データ(データは可変サイズであってもよい)、すなわち、どのように多く含まれている32ビットの符号なし整数である最初の4バイトにレイアウトされていますどのようにして最初の4バイトを整数で読み込むのですか?私が考えうる唯一のことは、shmop_read($key, 0, 4)
を行い、返された文字列値を配列に変換し、その配列をhereのように整数に変換することです。これはすべて非常に乱雑に思われ、私はこれを行うためのクリーンな方法があるのだろうか?
多分それはちょうど 'アンパック( "V"、shmop_read($キー、0、4))です;'。しかし、あなたは 'var_dump(shmop_read($ key、0、4));'を投稿できますか? –
'unpack()'を見た後、あなたの答えは正しいと思います。私は1日ほどそれをテストすることはできません。残念ながら。私は答えとしてコメントをマークすることができないので、答えとしてあなたのコメントを与えることができますか? – user2205930