linux进程间通信方式之信号处理sigaction
来源:互联网 发布:淘宝退款速度评价 编辑:程序博客网 时间:2024/05/01 12:46
#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <strings.h>#include <string.h>#include <signal.h>#include <syslog.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>//linux进程间通信方式之信号处理sigaction//sigaction 是一个函数,可以用来查询或设置信号处理方式。//作用:1.当使用sigaction处理信号前,会临时屏蔽当前要处理的信号,当安装完成放开屏蔽。//signal 信号//signum 正负号函数//捕获处理函数 临时屏蔽当前要处理的信号void handler(int sig){ if(sig == SIGALRM){ //匹配 printf("recv sigalrm before \n"); sleep(5); printf("recv sigalrm after\n"); }}//int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);/*struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer)(void); };*///3秒发送一个定时SIGALARM信号,使用sigacton捕获处理定时信号,选择性屏蔽SIGINTint main(){ struct sigaction act;//结构体命名 act.sa_handler = handler;//指向信号处理函数 //sigemptyset用来将参数set信号集初始化并清空。 sigemptyset(&act.sa_mask);//int sigemptyset(sigset_t *set); sigaddset(&act.sa_mask,SIGINT);//int sigaddset(sigset_t *set, int signum); -> act.sa_flags = 0; sigaction(SIGALRM,&act,NULL); printf("alarm set ok\n"); alarm(3);//计时3秒 printf("------------\n"); while(1) { pause();//阻塞等待任意信号唤醒,pause()函数是用于将调用进程挂起直到收到信号为止。 printf("------***------\n"); }}/*$ ./a.outalarm set ok------------recv sigalrm before recv sigalrm after------***------^C*/
阅读全文
0 0
- linux进程间通信方式之信号处理sigaction
- linux进程间通信方式之信号处理sigaction
- linux进程间通信方式之信号处理signal
- Linux异步信号处理之sinal sigaction
- Linux进程间通信方式之信号(signal)
- linux进程间通信方式之定时器信号alarm
- Linux进程间通信三之信号与处理
- Linux进程间的通信方式:信号
- 进程间通信方式之信号
- linux进程信号处理函数signal和sigaction
- Linux进程间通信之信号
- Linux进程间通信之信号
- linux进程间通信之信号
- linux进程间通信之信号
- Linux 进程间通信之信号
- linux之进程间通信--使用信号
- linux进程间通信之信号
- Linux进程间通信之信号
- PHP生成随机字符串
- 运算符的副作用
- 第十五周项目1 验证算法(6)归并排序
- 第十五周项目一(7)——归并排序
- 第十五周项目1-验证算法-堆排序
- linux进程间通信方式之信号处理sigaction
- 如何判断Linux服务器被入侵
- anaconda+win10 安装CPU版本的tensorflow
- 经济学人:数据经济虽好,可是仍需补钙
- GAN学习笔记:WGAN
- Python内置函数详解——总结篇
- /etc/profile 和 ~/.profile 区别是全部用户,和单一用户
- scoped详解
- sdut 翻译布尔表达式