C 使用某种互斥或信号量机制保护报警和睡眠

C 使用某种互斥或信号量机制保护报警和睡眠,c,linux,C,Linux,由于alarm和sleep都使用SIGALRM,因此可能存在冲突。 除了用setitimer或timer\u create等创建任何新计时器外,有人能建议我使用某种互斥或信号量机制来保护报警和睡眠吗。实际上,POSIX中允许sleep使用SIGALRM的文本与sleep是线程安全的要求相冲突,并且已在下一版本的POSIX中修复,但最好还是避免它 使用nanosleep或clock\u nanosleep代替sleep 您可以使用POSIX定时器或其他一些机制来代替报警,具体取决于您想要执行的操作

由于alarm和sleep都使用SIGALRM,因此可能存在冲突。
除了用setitimer或timer\u create等创建任何新计时器外,有人能建议我使用某种互斥或信号量机制来保护报警和睡眠吗。实际上,POSIX中允许
sleep
使用
SIGALRM
的文本与
sleep
是线程安全的要求相冲突,并且已在下一版本的POSIX中修复,但最好还是避免它

使用
nanosleep
clock\u nanosleep
代替
sleep

您可以使用POSIX定时器或其他一些机制来代替
报警
,具体取决于您想要执行的操作。然而,
报警
在超时后用信号中断卡住的操作的整个习惯用法对于多线程程序不起作用,因此实际上您应该放弃整个
报警
习惯用法,对现代代码使用不同的方法