【发布时间】:2014-11-05 17:08:11
【问题描述】:
所以我目前正在研究 C 中的 POSIX 线程和信号编程。 我的讲师使用
sigset(int sigNumber, void* signalHandlerFUnction)
由于他的笔记不是世界上最好的,我不得不自己做一些研究,偶然发现了一篇解释信号的好文章,但作者使用的是 signal() 方法,它接受相同类型的参数、sigNumber 和指向信号处理函数的指针。
据我所知,这两种方法都接受相同的参数并且基本上产生相同的结果。 我读到 signal() 很旧且不可移植,所以 sigaction() 更好。但真正的区别是什么?
【问题讨论】:
-
仔细阅读signal(7)。确实,sigaction(2) 更可取。
-
谷歌搜索在compgroups.net/comp.unix.programmer/… 生成了这个答案,并且有很多参考资料可供跟进。准备好作为学生进行自己的研究,而不是把所有东西都放在盘子里。
-
sigset()系列函数被 POSIX 标记为过时的。出于多种原因,您应该使用sigaction(),这些原因(至少)在What is the difference betweensigaction()andsignal()中进行了概述 -
@WeatherVane 谢谢你的链接:D 但没有必要投反对票:/
-
抱歉,这是您的评论我必须自己做一些研究,好像您认为您不应该这样做。