共有メモリ

プロセス間通信をするために共有メモリを使った.共有メモリは
myclass というインスタンスを共有メモリに載せる例.

載せる

        if((id=shmget(IPC_PRIVATE,sizeof(myclass),IPC_CREAT|0666))==-1) {
                perror("shmget");
                exit(-1);
        }

        if((adr=shmat(id,0,0))==(void*)-1) {
                perror("shmat");
                exit(-1);
        }

        myclass1=new(adr) myclass();

        if(shmctl(id,IPC_RMID,0)==-1) {
                perror("shmctl");
                exit(-1);
        }

アクセスする

こうすると他のプロセスで

        if((adr=shmat(id,0,0))==(void*)-1) {
                perror("shmat");
                exit(-1);
        }

        myclass1=(myclass*)adr;

        /*something to do*/

        if(shmctl(id,IPC_RMID,0)==-1) {
                perror("shmctl");
                exit(-1);
        }

みたいな感じに書くと「載せる」例のインスタンスに「アクセスする」インスタンスからアクセスできるようになる.