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

linux c 进程间通信信号入门之一,第1张

实现功能:
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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/3002543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)

保存