提示程序试图访问非法访问内存。
最常见的原因:
用户使用中断程序时发生。
函数原型:void (*signal(int sig, void (* handler) (int) ) ) (int);
忽略函数的返回值的话:signal(int sig, void (* handler)(int))
函数的返回值是一个函数指针: void (*p)(int)。
其实跟函数的第二个参数一样的类型。
返回的是信号以前的处理函数的指针。
当信号发生时,程序有3种方式对信号做出反应:
书中有这段描述。不知道应该怎么理解。如果缺省的行为是终止程序,那设置的信号处理函数就不执行了吗?
还有这两段描述。也就是说信号处理函数里面除了访问和修改valatile sig_atomic_t类型的变量之外,别的什么都不能干了别?
定义了一种CPU可以原子访问的数据类型,也就是不可分割的访问单元。
原文:https://www.cnblogs.com/wuyuntana/p/14993807.html