我学的信号处理,我有一个关于返回信号的问题:信号()的返回类型
void (*sighandler_t)(int);
我知道这是一个指向信号处理器的先前的功能,但我不不知道参数“(int)”的含义。
非常感谢!
我学的信号处理,我有一个关于返回信号的问题:信号()的返回类型
void (*sighandler_t)(int);
我知道这是一个指向信号处理器的先前的功能,但我不不知道参数“(int)”的含义。
非常感谢!
对信号处理程序的参数int
是导致处理程序被调用的信号的编号。如果您有多个信号连接到相同的信号处理函数,这非常有用。
信号处理函数具有您发布的签名。当你的程序收到一个信号时,他的系统会调用你的信号处理程序,并将它作为参数处理,这样你就可以拥有一个用于多种信号类型的通用处理程序。
(int)
是类型的一部分; sighandler_t
类型是指向返回void
并将int
作为参数的函数的指针。
这不完全是指向前一个函数的指针。它是一种函数指针的声明。
该指针可用于任何具有void返回类型和int参数的函数。
阅读更多有关此语法如何一边在这里工作
作为,注意'sighandler_t'不是一个标准类型的名称,应该从来没有在代码中使用。这是不安全的,因为你不能依赖它,但是你也不能自己定义它,因为系统头文件可能会定义它。相反,总是写出完整的类型或者像'my_sighandler'一样定义自己的名字。 – 2011-06-09 01:45:42