31 lines
529 B
C
31 lines
529 B
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <unistd.h>
|
||
|
#include <signal.h>
|
||
|
#include <sys/types.h>
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
pid_t pid;
|
||
|
pid = fork();
|
||
|
if (pid < 0)
|
||
|
{
|
||
|
perror("fork");
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
else if (pid > 0) // 父进程的代码
|
||
|
{
|
||
|
printf("这是父进程\n");
|
||
|
// 使用 pause 阻塞等待捕捉信号
|
||
|
pause();
|
||
|
}
|
||
|
else // 子进程的代码区
|
||
|
{
|
||
|
printf("这是子进程\n");
|
||
|
sleep(3);
|
||
|
kill(getppid(), SIGINT);
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
}
|