SIGUSR1 시그널을 이용해서 자식프로세스가

junwon****@Naver의 이미지

부모 프로세스에게 메시지를 보내서 받을수 있게 만들면 어떻게 해야 할까요?

나름 해보다가 막혔습니다..

void handler(char * addr)
{

printf("parent received %s",addr );
}

int main(int argc, char *argv[]) {

int fd;
pid_t pid;
caddr_t addr;
struct stat statbuf;

if (argc != 2) {
fprintf(stderr, "Usage : %s filename\n", argv[0]);
exit(1);
}

if (stat(argv[1], &statbuf) == -1) {
perror("stat");
exit(1);
}

if ((fd = open(argv[1], O_RDWR)) == -1) {
perror("open");
exit(1);
}

addr = mmap(NULL, statbuf.st_size, PROT_READ|PROT_WRITE,
MAP_SHARED, fd, (off_t)0);

if (addr == MAP_FAILED) {
perror("mmap");
exit(1);
}
close(fd);

signal(SIGUSR1,handler);

switch (pid = fork()) {
case -1 : /* fork failed */
perror("fork");
exit(1);
break;

case 0 : /* child process */

break;

default : /* parent process */

break;

}

return 0;
}

익명 사용자의 이미지

kill(parentPID, SIGUSR1);