23,216
社区成员




#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
#include <sys/wait.h>
void send_signal(int pid,int signal)
{
if(kill(pid,signal) == 0)
printf("send signal success.\n");
else
printf("send signal failed.\n");
}
void received_signal(int signal)
{
if(signal == SIGUSR1)
printf("22222222222222222\n");
}
void handler(int signal)
{
if (signal == SIGUSR1) {
printf("11111111111111111111111\n");
}
}
int main()
{
pid_t pid;
int status = 0;
int rc;
if((pid = fork()) == 0) {
signal(SIGUSR1,received_signal);
printf("i am child process pid = %d.\n",getpid());
pause();
exit(0);
}
if ((pid = fork()) == 0) {
signal(SIGUSR1,handler);
printf("the second process pid = %d\n",getpid());
pause();
exit(0);
}
sleep(1);
printf("pid = %d\n",(pid_t)pid);
rc = kill(0,SIGUSR1);
printf("rc = %d\n",rc);
printf("333333333333333333333333333333\n");
printf("i am parent process.pid = %d\n",getpid());
wait(&status);
exit(0);
}
int kill(pid_t pid, int sig);
rc = kill(0, SIGUSR1);