Я пытаюсь написать программу для ввода данных от пользователя к родителю. Затем отправьте эти данные в child.Наконец, child выполняет какое-то действие с данными и отправляет их родителю, где они печатаются. Данные должны храниться только в общей памяти, а связь должна осуществляться с использованием сигналов.
#include<stdio.h>
#include<signal.h>
#include<unistd.h>
#include<sys/ipc.h>
#include<sys/shm.h>
#define SHM_KEY 0x1234
void sigfun(int sig) //signal handler
{
printf("You have presses Ctrl-C, please press again to exit\n");
signal(SIGINT, SIG_DFL);
}
int main()
{
int shmid;
char * shmp;
shmid=shmget(SHM_KEY, 100, 0644|IPC_CREAT);
if(shmid==-1)
{
perror("Shared Memory error: ");
exit(-1);
}
printf("100 bytes of shared memory segment created and its ID is: %d\n",shmid);
shmp=shmat(shmid,NULL,0);
if(shmp==NULL)
{
perror("shmat() error: ");
exit(-1);
}
printf("\nSegment attached to process:%d and its address is:%p\n",getpid(),shmp);
signal(SIGINT, sigfun);
while (1)
{
printf("Hello world, ......\n");
sleep(1);
}
return 0;
}