在 Linux 下,signal 函数等价于使用 sigaction 函数,并带有SA_ONESHOT和SA_NOMASK选项;也就是说,它对应于在 SVR4 下使用的经典的、不可靠的信号语义。
如果您希望 signal 使用 BSD 语义,大多数 Linux 系统提供一个 BSD 兼容性库,可以将其链接到程序中。 要使用此库,您可以将以下选项添加到编译命令行:
-I/usr/include/bsd -lbsd在使用 signal 移植应用程序时,请密切注意程序对信号处理程序的使用所做的假设,并修改代码(或使用适当的定义进行编译)以获得正确的行为。