sigaction实例
大家好,又见面了,我是你们的朋友全栈君。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <time.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
#include <syslog.h>
#include <signal.h>
static void signal_handle(int sign)
{
printf(“Test:System signal(%d) received,exit \n”,sign);
exit(0);
}
void signal_oact(int sign)
{
printf(“Test:in signal_oact”);
}
void signal_set()
{
struct sigaction act,old_act;
//act
act.sa_handler = signal_handle;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
//oact
old_act.sa_handler = signal_oact ;
//
if(sigaction(SIGHUP,&act,&old_act) <0)
{
printf(“FATAL errorfor sigaction in function signal_set \n”);
exit(-1);
}
sigaction(SIGSEGV,&act,NULL);
sigaction(SIGINT,&act,&old_act);
sigaction(SIGTERM,&act,NULL);
sigaction(SIGQUIT,&act,NULL);
return;
}
int main()
{
signal_set();
while(1)
{
printf(“test:waitsignal\n”);
sleep(1);
}
return 0;
}
运行后,执行ctrl+c命令,产生一个SIGINT信号,程序会执行 signal_handle函数
SIGINT信号,程序终止(interrupt)信号,在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141109.html原文链接:https://javaforall.cn
相关文章
- c++私有变量和公有变量_没有与指定类型匹配的重载函数实例
- 教你如何在你的程序或网站中接入聊天机器人Chat(内附实例分享)
- 连接到AWS实例详解程序员
- Java面向对象接口的应用实例练习详解编程语言
- Oracle中转义字符的使用实例(oracle中存换行符)
- jquery中dom操作和事件的实例学习下拉框应用
- jQuery提交表单ajax查询实例代码
- 关于C#.netwinform程序验证moss的集成身份认证实例
- 图片不存在使用默认图片代替的实例
- ASP.NETGridview中使用checkbox删除的2种方法实例分享
- C#获取枚举值的简单实例
- jquery实现手风琴效果实例代码
- android获取手机IMSI码判断手机运营商代码实例
- 使用Rhino让java执行javascript的方法实例
- C#简单的特殊输出实例
- php创建session的方法实例详解
- C++中调用Lua函数实例