我是靠谱客的博主 凶狠小蝴蝶,最近开发中收集的这篇文章主要介绍linux的SIGUSR1和SIGUSR2信号例子linux的SIGUSR1和SIGUSR2信号例子代码,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
linux的SIGUSR1和SIGUSR2信号例子
利用SIGUSR1和SIGUSR2在父子进程之间进行消息传递,实现父子进程交替报数(间隔1秒)
- kill(pid,sig) 发送信号
- 父子进程捕捉信号
代码
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <signal.h>
#include <sys/types.h>
pid_t pid;
int count = 0;
int flag = 0;
void cat_sig_father(int num){
sleep(1);
flag = 1;
printf("%dn",count);
count +=2;
//kill(pid,SIGUSR2);
}
void cat_sig_child(int num){
sleep(1);
flag = 1;
printf("%dn",count);
count +=2;
//kill(getppid(),SIGUSR1);
}
int main(int argc, char const *argv[])
{
pid = fork();
if(pid ==0){
//son
count = 1;
signal(SIGUSR2,cat_sig_child);//捕捉SIGUSR2信号
pid_t ppid = getppid();
while (1)
{
if(flag ==1){
kill(ppid,SIGUSR1);
flag = 0;
}
}
}else{
usleep(10);
count = 2;
signal(SIGUSR1,cat_sig_father);//捕捉SIGUSR1信号
kill(pid,SIGUSR2);
//printf("begin ..n");
while (1)
{
if(flag ==1){
kill(pid,SIGUSR2);
flag = 0 ;
}
}
}
return 0;
}
最后
以上就是凶狠小蝴蝶为你收集整理的linux的SIGUSR1和SIGUSR2信号例子linux的SIGUSR1和SIGUSR2信号例子代码的全部内容,希望文章能够帮你解决linux的SIGUSR1和SIGUSR2信号例子linux的SIGUSR1和SIGUSR2信号例子代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复