编写一段C语言程序,使其实现进程的软中断通信。 要求:使用系统调用fork( )创造一个进程,父进程进程睡眠2秒后,用系统调用Kill( ) 向子进程P发出信号,子进程P捕捉到信息后输出下列信息终止: Child is Killed by father! 父进程等待子进程终止后,输出如下的信息后终止
时间: 2024-02-25 10:52:47 浏览: 24
以下是实现进程的软中断通信的C语言程序:
```
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
void child_handler(int signum) {
printf("Child is Killed by father!\n");
exit(0);
}
int main() {
pid_t pid;
int status;
pid = fork();
if (pid < 0) {
printf("Fork failed.\n");
exit(1);
} else if (pid == 0) {
signal(SIGINT, child_handler);
while(1);
} else {
sleep(2);
if (kill(pid, SIGINT) == -1) {
printf("Kill failed.\n");
exit(1);
}
wait(&status);
printf("Child process exited with status %d.\n", WEXITSTATUS(status));
exit(0);
}
return 0;
}
```
注:以上代码仅供参考,具体实现方式可能因系统环境等原因而有所不同。