signal()返回类型

时间:2011-06-09 00:29:01

标签: c unix signals

我正在研究信号处理,我对信号的返回有疑问:

void (*sighandler_t)(int);

我知道它是指向信号处理程序的前一个函数的指针,但我不知道参数“(int)”的含义。

非常感谢!

4 个答案:

答案 0 :(得分:4)

信号处理程序的int参数是导致调用该处理程序的信号编号。如果您有多个信号连接到相同的信号处理函数,这将非常有用。

答案 1 :(得分:2)

(int)是该类型的一部分; sighandler_t类型是指向返回void并以int作为参数的函数的指针。

答案 2 :(得分:1)

信号处理函数具有您发布的签名。当程序收到信号时,系统会调用您的信号处理程序并向其发送要作为参数处理的信号,因此您可以为多种信号类型设置一个公共处理程序,例如。

答案 3 :(得分:0)

这不完全是指向前一个函数的指针。它是一种函数指针的声明。

该指针适用于具有void返回类型和int参数的任何函数。

详细了解此语法的工作原理

http://www.cprogramming.com/tutorial/function-pointers.html