2011-06-09 98 views
0

我学的信号处理,我有一个关于返回信号的问题:信号()的返回类型

void (*sighandler_t)(int); 

我知道这是一个指向信号处理器的先前的功能,但我不不知道参数“(int)”的含义。

非常感谢!

+0

作为,注意'sighandler_t'不是一个标准类型的名称,应该从来没有在代码中使用。这是不安全的,因为你不能依赖它,但是你也不能自己定义它,因为系统头文件可能会定义它。相反,总是写出完整的类型或者像'my_sighandler'一样定义自己的名字。 – 2011-06-09 01:45:42

回答

4

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

1

信号处理函数具有您发布的签名。当你的程序收到一个信号时,他的系统会调用你的信号处理程序,并将它作为参数处理,这样你就可以拥有一个用于多种信号类型的通用处理程序。

2

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