2つのプロセス間で整数を共有しようとしていますが、メモリセグメントはプログラム1で初期化され、プログラム4で使用されます。プログラム1の初期化は次のとおりです。整数を単に共有メモリセグメントに格納する:C
shmid = shmget(key, sizeof(int*), 0666 | IPC_CREAT);
int *data = (int *)shmat(shmid, (void*)0,0);
ここでは、「異なるサイズの整数からポインタへキャスト」という警告が表示されます。アー。
シンプルに、私は推測していますが、私はIPCで大きな時間を過ごしています。そして、Cの他の多くの事....
は、その後、私は別のプログラムに渡す:
snprintf(shmarg, sizeof(shmarg), "%n", data);
pid_t pid3 = run_cmd4("/home/tropix/hw11-4", shmarg, semarg, pipe_from_p2_2, pipe_to_p5_2);
しかし、他の側でそれにアクセスする方法がわかりません。プログラム4でintを取得するにはどうすればよいですか?
それはありがとう:) – Josh