2 clam1234 clam1234 于 2016.01.30 17:10 提问

Linux截取信号中用signal()注册处理函数的问题。

在Linux中一个线程内通过signal()注册处理函数时,写法代码如下:signal(SIGPIPE,sig_pipe); 在sig_pipe()函数的定义时有一个int型的形参,那在线程接收到信号后如何传递这个int型的形参?

3个回答

oyljerry
oyljerry   Ds   Rxr 2016.01.30 21:20
已采纳

这个是回调函数调用的时候给你传递的参数数据

xyz347
xyz347   2016.01.30 22:09

这个就是信号编码,这样你可以多个信号注册同一个回调函数

devmiao
devmiao   Ds   Rxr 2016.02.01 08:14
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
linux之信号处理函数signal和sigaction
signal回调函数绑定信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。那么我们很多场景下,需要对不同的信号进行捕获并做出响应操作。 在linux上,我们有两种方式完成该操作:1. signal#include <signal.h> signal(int, void (*)(int)); 第一个参数是我们要捕获的信号类型,第二个参数是我们要绑定的
unix/linux下信号处理函数Signal()详解
signal()函数理解 在 这个头文件中。 signal(参数1,参数2); 参数1:我们要进行处理的信号。系统的信号我们可以再终端键入 kill -l查看(共64个)。其实这些信号时系统定义的宏。 参数2:我们处理的方式(是系统默认还是忽略还是捕获)。 一般有3中方式进行操作。 (1)eg: signal(SIGINT ,SIG_ING ); //SI
Linux信号处理函数
转自:http://blog.csdn.net/sddzycnqjn/article/details/7285760 1. 信号概念  信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件)。信号是硬件中断的软件模拟(软中断)。每个信号用一个整型常量宏表示,以SIG开头,比如SIGCHLD、SIGINT等,它们在系统头文件中定义,也可以通过在shell下键入ki
linux进程信号处理函数signal和sigaction
Linux中signal函数说明: NAME        signal - ANSI C signal handling SYNOPSIS        #include        typedef void (*sighandler_t)(int);        sighandler_t signal(int signum, sighandler_t
多线程中的信号机制--sigwait()函数
在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别,可以说是完全不同。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的(我们完全不知到信号会在进程的那个执行点到来!)。然而信号处理函数的实现,有着许多的限制;比如有一些函数不能在信号处理函数中调用;再比如一些函数read、recv等调用时会被异步的信号给中断(inter
linux sigaction函数(注册信号)使用
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。参数说明: signum : 要操作的信号 act : 要设置的对信号的新处理方式 oldact : 原来对信号的处理方式 返回值: 成功返回0,
Linux:signal调用类成员函数
Unix:signal调用类成员函数  (2013-05-19 18:29:51) 转载▼ 标签:  杂谈 分类: Unix_Programming     这个问题早在使用signal时就碰到过,好不容易找到signal使用static型类成员函数的方法,但是发现不能传递参数,终究还是不行,直到在《APUE》上看到pthread
Linux异步信号处理函数引发的死锁及解决方法
异步信号处理方式使用不当会发生死锁。异步信号处理函数不推荐做太多工作,如果调用函数需要是reentrant。reentrant可重新进入的,可以理解为一次调用发生后,不会对该函数的再次调用发生任何影响。即reentrant函数中不可以有static或global变量,不可以分配释放内存,通常不可以使用修改用户提供的对象,修改errno等等。 可采用同步信号处理方式避免死锁问题。
signal signal函数每次设置具体的信号处理函数(非SIG_IGN)只能生效一次,多次调用需要调用时在加类似监听的方法!!! 最好用sigaction
signal()函数理解 在 这个头文件中。 signal(参数1,参数2); 参数1:我们要进行处理的信号。系统的信号我们可以再终端键入 kill -l查看(共64个)。其实这些信号时系统定义的宏。 参数2:我们处理的方式(是系统默认还是忽略还是捕获)。 一般有3中方式进行操作。 (1)eg: signal(SIGINT ,SIG_ING ); //SI
linux中的信号处理(signal和alarm)
信号是unix中所使用的进程通信的一种最古老的方法.系统使用它来同志一个或多个进程异步事件的发生. linux系统库bits/signum.h对信号名作了定义: linux的大多数信号是提供给内核的,仅有少数几种信号可以在信号间发送. .SIGHUP 当终止一个终端时,内核就把这种信号发送给该终端所控制的所有进程. .SIGINT 当一个用户按下中断键(ctrl+c)后,内核就向该