Связь между двумя процессами с использованием сигналов в C - PullRequest
0 голосов
/ 03 октября 2018

Я должен создать программу на C, которая будет взаимодействовать между двумя процессами по SIGUSR1.Эта программа должна отвечать обратно при отправке и получении сигнала.У меня есть код ниже, но он просто посылает сигнал, почему функция приема не работает?

IMG

#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

void send_SIGUSR1();

void main()
{
int pid;

if ((pid = fork()) < 0) {
    perror("Fork");
    exit(1);
}

if (pid == 0) {
    signal(SIGUSR1, send_SIGUSR1());
}

else
{
    printf("\nPARENT: sending SIGUSR1\n\n");
    kill(pid, SIGUSR1);
}
}

void send_SIGUSR1()

{
signal(SIGUSR1, send_SIGUSR1);
printf("CHILD: I have received a SIGUSR1\n");
}
...