APUE - 15.9 Shared Memory
普通にforkしちゃうと、変数は共有することができない。
が、shmget(2), shmat(2)を使えば、メモリを共有することができる。
shmat(2)
#include <sys/types.h> #include <sys/shm.h> void *shmat(int shmid, const void *shmaddr, int shmflg); int shmdt(const void *shmaddr);
shmat() は shmid で指定された System V 共有メモリ・セグメント (shared memory segment) を コールしたプロセスのアドレス空間に付加 (attach) する。 付加するアドレスは shmaddr に以下のどれかの形式で指定する:
(中略)
fork(2) した後、子プロセスは付加された共有メモリ・セグメントを継承する。