sigaction实例

sigaction实例#include#include#include#include#include#include#include#include#include#include#include staticvoidsignal_handle(intsign){       printf(“Test:Systemsignal(%d

大家好,又见面了,我是你们的朋友全栈君。

#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.net/141109.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 读完了csapp(中文名:深入理解计算机系统)

    读完了csapp(中文名:深入理解计算机系统)

    2021年12月7日
    43
  • R语言画图时常见问题

    各位朋友,我已开通微信公共号:小程在线我会把文章及时的更新到公共号上,欢迎大家的关注。1如何在同一画面画出多张图?修改绘图参数,如par(mfrow=c(2,2))或par(mfcol=c(2,2));par():mar设置图离四个边缘的距离;bg设置背景颜色;xaxt和yaxt设置坐标轴标签的类型(=”n”表示不画轴标签);xlim和ylim设置坐标轴的范围…

    2022年4月7日
    28
  • Linux常用命令大全

    Linux常用命令大全

    2021年10月15日
    29
  • Linux抓包命令tcpdump以及常见抓包使用方法[通俗易懂]

    Linux抓包命令tcpdump以及常见抓包使用方法[通俗易懂]系统运行过程中,难免发现服务器一些流量异常或访问异常,我们可以采用tcpdump命令进行抓包。下边简单介绍下该命令使用办法。1,安装tcpdump一些系统默认没有安装,我们需要yum安装下这个命令:yuminstalltcpdump-y2,tcpdump使用。一些使用我们可以tcpdump–help看下帮助,比如:常用的一些简单用法,一般是抓取对应网卡、端口、对应IP等。tcpdump-nn本地网卡地址以及外部链接地址,并采用IP地址、端口表示。如果不加-nn则会…

    2022年6月15日
    57
  • 周鸿祎说腾讯_周鸿祎的3Q

    周鸿祎说腾讯_周鸿祎的3Q6月10日老杳吧的一个手机厂商聚会上,奇虎360董事长周鸿祎有一段很有意思的发言。他用充满煽动性的语言对手机厂商们描述了市场环境、分析了自己的“敌人”小米科技和整个互联网的“敌人”腾讯,并极力为自己的360手机合作平台招徕伙伴。他对在场的手机和相关硬件生产商说,“现在所有的互联网公司在琢磨怎么做手机的同时,我觉得手机公司应该琢磨自己怎么转型。” 酷派、中兴、华为一年出多少手机,这个量比小米

    2022年9月2日
    2
  • java怎么键盘录入字符串

    java怎么键盘录入字符串-java怎么键盘录入字符串如图所示:来看一下每句代码的意思:先写上:importjava.util.Scanner//导入java.util包下的Scanner类,导入后才能使用它接着:Scanner.sc=newScanner(System.in);//new是指创建了一个scanner类,在创建Scanner类的对象时要用System.in作为…

    2022年7月16日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号