linux signal(1)

这里写图片描述

1) SIGHUP   
2) SIGINT
3) SIGQUIT   
4) SIGILL    
5) SIGTRAP
6) SIGABRT   
7) SIGBUS    
8) SIGFPE     发生致命的运算错误 
9) SIGKILL  
10) SIGUSR1
11) SIGSEGV    访问了无效的内存 
12) SIGUSR2 
13) SIGPIPE    Broken pipe 向一个没有读端的管道写数据
14) SIGALRM 
15) SIGTERM
16) SIGSTKFLT   
17) SIGCHLD    子进程结束的时候 会向父进程发送这个信号,默认动作是忽略
18) SIGCONT 
19) SIGSTOP 
20) SIGTSTP
21) SIGTTIN 
22) SIGTTOU 
23) SIGURG  
24) SIGXCPU 
25) SIGXFSZ
26) SIGVTALRM   
27) SIGPROF 
28) SIGWINCH    
29) SIGIO   
30) SIGPWR
31) SIGSYS

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <errno.h>

//13 SIGPIPE    向一个没有读端的管道写数据

这里写图片描述
这里写图片描述

//17 SIGCHLD 子进程结束的时候 会向父进程发送这个信号,默认动作是忽略
void chldhandler(int sig)
{
    printf("recv a sig = %d\n", sig);
}

int main(int argc, char const *argv[])
{
    pid_t pid;

    pid = fork();
    if (pid > 0)
    {
        //SIGCHLD 默认动作是忽略
        signal(SIGCHLD,chldhandler);
        wait(NULL);
        printf("父进程 id = %d\n",(int)getpid());

    }else if (pid == 0)
    {
        printf("子进程id=%d\n",(int)getpid());
    }else{
        ERR_EXIT("fork");
    }
    return 0;
}

这里写图片描述

//访问了无效的内存 ,著名的段错误。
int main(int argc, char const *argv[])
{
    /**
        访问受保护的地址
    */
    int * sp = (int *)0;
    *sp = 100;

    /**
        访问不存在的地址
    */
    int * ptr;
    *ptr = 100;

    /**
        访问只读的内存
    */
    char * username = "leesagacious";
    *username = "gcc";

    return 0;
}

8 : SIGFPE
void handler(int sig)
{
    printf("recv a sig = %d\n",sig);
    exit(0);
}
int main(int argc, char const *argv[])
{
    signal(SIGFPE,handler); //发生致命运算错误。
    int a = 100 / 0;

    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值