共有メモリセグメントを表すクラスです。共有メモリを介して、異なるプロセス間で相互にデータを読み書きすることができます。このクラスのインターフェースは、System V IPCの共有メモリモデル(shmget〜shmat〜shmdt〜shmctl(IPC_RMID))を参考にしました。
※現バージョンでは、2GBを超えるセグメントは扱えません。
Plugins.link("util_system.dll"); // セグメントを識別するためのキー var key = 'TVP2_SHARED_MEMORY'; // 割り当てるサイズ var sizeAlloc = 256; // 読み書きするサイズ var sizeRW = 32; // 書き込むデータ var oct = <% 99 aa bb cc dd ee ff aa %>; // インスタンスを作成 var shm = new SharedMemory(); // セグメント作成 var rv = shm.get(key, sizeAlloc); // 戻り値で新規か既存かがわかる System.inform(rv ? '新規' : '既存'); // 読み書き両用で付加 shm.attach(SharedMemory.ACCESS_READ_WRITE); // データを書き込む shm.poke(0, sizeRW, oct); // データを読み込む var r = shm.peek(0, sizeRW); // セグメントを分離する shm.detach(); // セグメントを解放する shm.free();