두 프로세스간에 정수를 공유하려하지만 메모리 세그먼트가 프로그램 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