
作业社区
探索学习新天地,共享知识资源!
蜡笔小方哎 的学生作业:
#include #include #include #include #include #include #include void my_process(int sig) { printf("receive signal: %s\n", strsignal(sig)); } int main() { pid_t pid_1; signal(SIGUSR1, SIG_DFL); signal(SIGUSR2, my_process); pid_1 = fork(); if(pid_1 == -1) { perror("fork() error"); exit(-1); } else if(pid_1 == 0) { printf("child process 1 is running\n"); pause(); printf("child process 1 exit\n"); exit(0); } else { pid_t pid_2; pid_2 = fork(); if(pid_2 == -1) { perror("fork() error"); exit(-1); } else if(pid_2 == 0) { printf("child process 2 is running\n"); pause(); printf("child process 2 exit\n"); exit(0); } else { sleep(1); kill(pid_1, SIGUSR1); kill(pid_2, SIGUSR2); wait(NULL); } } return 0; }
蜡笔小方哎 的学生作业:
#include #include #include #include #include #include int main() { pid_t pid_1; pid_1 = fork(); if(pid_1 == -1) { perror("fork() error"); exit(-1); } else if(pid_1 == 0) { printf("child process 1 is running\n"); pause(); } else { pid_t pid_2; pid_2 = fork(); if(pid_2 == -1) { perror("fork() error"); exit(-1); } else if(pid_2 == 0) { printf("child process 2 is running\n"); pause(); } else { sleep(1); kill(pid_1, SIGKILL); kill(pid_2, SIGKILL); wait(NULL); } } return 0; }