实现功能:
1 使用fork()生产子进程。
2 程序运行5秒之后主进程给子进程发送暂停执行信号,5秒之后发送继续执行信号,然后再5秒之后发送Kill指令终止子进程的执行.
#include <sys/wait.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
/**
* https://man7.org/linux/man-pages/man7/signal.7.html
* http://www.cs.kent.edu/~ruttan/sysprog/lectures/signals.html
*
*/
int main() {
pid_t cpid;
cpid = fork();
if (cpid == -1) {
perror("fork");
exit(EXIT_FAILURE);
}
if (cpid == 0) {
int i = 0;
while (1) {
sleep(1);
printf("child: %d \n", i++);
}
printf("child\n");
} else {
sleep(5);
kill(cpid, SIGSTOP);
sleep(5);
kill(cpid, SIGCONT);
sleep(5);
kill(cpid, SIGKILL);
// wait child process to exit
wait(NULL);
}
return EXIT_SUCCESS;
}
参考 :
https://man7.org/linux/man-pages/man7/signal.7.html
http://www.cs.kent.edu/~ruttan/sysprog/lectures/signals.html