Linux_4.5_信号通讯编程
2015-06-22 23:51
751 查看
信号:
信号处理流程:
信号类型:
6.1发送信号
6.1.1 函数名
kill
6.1.2 函数原形
int kill(pid_t pid,int sig)
6.1.3 函数功能
向进程发送信号
6.1.4 所属头文件
#include<sys/types.h>
#include<signal.h>
6.1.5 返回值
成功:0
失败:-1
6.1.6 参数说明
pid: pid>0,pid参数执行接收信号的进程
详细解释:点击打开链接
sig:指明要发送的信号
6.2处理信号
6.2.1 函数名
signal
6.2.2 函数原形
typedef void(*sighandler_t)(int)
sighandler_t signal(int signum,sighandler_t handler)
6.2.3 函数功能
设置信号的处理方式
6.2.4 所属头文件
#include<signal.h>
6.2.5 返回值
成功:返回处理函数指针
失败:返回SIG_ERR
6.2.6 参数说明
signum: 要处理的信号
handler: 对应信号的处理方式,可以取值
SIG_IGN:忽视这个信号(不处理)
SIG_DFL:交给内核来处理
用户自定义的函数:交给用户自定义的函数来处理
测试:
bprocess.c文件:
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
void myfunc(int a)
{
printf("process S received SIGINT\n");
}
int main(void)
{
signal(SIGINT,myfunc);
/*wait */
pause();
return 0;
}
aprocess.c文件:
#include <sys/types.h>
#include <signal.h>
#include <stdio.h>
int main(int argc,char *argv[])
{
pid_t pid;
/*atoi() string -> int*/
pid = atoi(argv[1]);
kill(pid,SIGINT);
return 0;
}
先运行bprocess进程,然后查看bprocess进程号,
根据进程号执行aprocess,如下:
相关文章推荐
- Linux下find与rm指令结合批量删除文件
- linux 之 sed
- CentOS 7 IP配置
- Linux日志:rsyslog及loganalyzer(二)
- windows访问虚拟机中的linux
- 【Linux】Ubuntu 开机默认亮度修改方法
- 如何理解Linux下的动态库概念,和静态库概念,通俗易懂的解释如下:
- 解决Linux下Qt程序报『QString::arg: Argument missing: 无法解析SSLv2_client_method中的符号』错误
- centos6.3下mysql5.5.32源码安装
- 实战Linux下防火墙iptables设置
- Linux 运维工程师的十个基本技能点
- linux 下普通用户无法使用sudo命令的解决方法
- 不同版本Linux的区别 和选择
- Linux下获取帮助
- centos7服务安装_流媒体服务器_安装
- linux程序设计——使用C语言访问MySQL(第八章)
- 关于CentOS下 yum包下载下的rpm包放置路径
- /var/log目录下的20个Linux日志文件功能详解
- 读linux源码时遇到的问题
- rhel源更换为centos源