qfedu-linux-advanced-level/day3/test_pause.c

31 lines
529 B
C
Raw Normal View History

2023-08-17 09:20:18 +08:00
#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;
}