linux c 进程间通信信号入门之一

实现功能:
1 使用fork()生产子进程。
2 程序运行5秒之后主进程给子进程发送暂停执行信号,5秒之后发送继续执行信号,然后再5秒之后发送Kill指令终止子进程的执行.

#include 
#include 
#include 
#include 
#include 
#include 
#include 

/**
 * 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

你可能感兴趣的:(linux,linux,c语言)