linux 信号发送简单用法
来源:互联网 发布:js连接mysql数据库 编辑:程序博客网 时间:2024/06/05 17:13
http://blog.chinaunix.net/uid-20528014-id-333569.html
http://zhidao.baidu.com/link?url=YGCDevofDnxZdkMjmIdhfhiELE-usQ-6xUGNDnsdhwu82UASqylJU7WzMzQ6sZXVRJVUQ8xv1J0kLxmWkx3GEa
1. 信号基本概念
信号(signal)是linux进程通讯中唯一的异步通讯方式。
信号从软件层次上看是对中断机制的一种模拟。一个进程收到信号时的处理方式与CPU收到中断请求时的处理方式一样。收到信号的进程会跳入信号处理函数,执行完后再跳回原来的位置继续执行。
2. 信号安装
信号的安装函数有两个:signal()与sigaction()。signal()常用于非实时信号;sigaction()常用于实时信号,它有更多的选项设置,最重要的是可以为实时信号安装带参数的回调。
#include <signal.h>#include <sys/types.h>#include <unistd.h> void new_op(int,siginfo_t*,void*); int main(int argc,char**argv){ struct sigaction act; int sig; sig = atoi(argv[1]); sigemptyset(&act.sa_mask); act.sa_flags = SA_SIGINFO; act.sa_sigaction = new_op; sigaction(sig, &act, NULL); while(1) { printf("hello world\n"); sleep(2); }}void new_op(int signum,siginfo_t *info,void *myact){ printf("***** receive signal %d ******\n", signum); sleep(5);}
执行:
Ø 启动程序:“./a.out 38&” (注:&作用是程序在新进程中执行)
Ø 使用ps查看进程PID
Ø 执行“kill –s 38 pid” (注:pid为上面用ps得到的pid)或者 killall -38 procname
Ø 会打印“***** receive signal %d ******\n”
3. 信号发送
kill 等函数
0 0
- linux 信号发送简单用法
- Linux -- 信号发送实现
- LINUX信号发送
- linux 信号发送函数sigqueue和信号安装函数sigaction用法
- linux内核中的信号机制--信号发送
- Linux信号列表与发送信号
- linux信号简单编程
- Linux信号简单入门
- linux 信号的捕捉和发送函数的简单使用:sigaction()和sigqueue()
- 十五、Linux系统编程-信号(二)信号分类、可靠信号与不可靠信号、信号发送 pause
- 【linux信号】sleep的用法
- Linux信号机制之信号的发送及接收
- linux信号实现浅析2--信号发送内核源码解析
- linux信号处理--通过发送信号控制进程
- linux 练习六 信号的发送与信号处理
- Linux下发送自定义信号 C++代码
- linux用实时信号发送数据
- Linux之进程间发送信号
- Shiro源码学习之ShiroFilter
- MVC三层模(struts+spring+hibernate(SSH)总结
- 实现图像处理算法中采用策略“Strategy”模式+Qt中相对路径
- 九度OJ题目1031:xxx定律
- (十三)装饰模式
- linux 信号发送简单用法
- 机器视觉代码大全
- SSH是怎么分工的
- 分支管理---创建与合并分支
- 2015年 国家超级计算济南中心 工作日志
- Java BigDecimal中的RoundingMode
- 岁月走过,2014
- longest common substring
- 【linux 开发】8 个基于 Lucene 的开源搜索引擎