Я просто пытаюсь разделить целое число между двумя процессами, но сегмент памяти инициализируется в программе 1 и используется в программе 4. Вот инициализация в программе 1:
shmid = shmget(key, sizeof(int*), 0666 | IPC_CREAT);
int *data = (int *)shmat(shmid, (void*)0,0);
Здесь я получаю предупреждение "приведение к указателю из целого числа разного размера". Argh.
Я полагаю, все просто, но я большой любитель IPC. И многое другое в с ...
Затем я передаю его другой программе:
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);
Не уверен, как получить доступ к нему на другой стороне, хотя. Как я могу вернуть int в Программе 4?