在我的代码中,我需要在2秒后调用sigalrm。但是,当我使用ualarm(2000000, 0 )
时,它不起作用。使用ualarm
少于1秒的作品。而alarm(2)
有效。为什么ualarm
应该在alarm
之上使用?有没有办法让ualarm
工作超过1秒?
最佳答案
ualarm()
已经过时,实际上已经从POSIX中删除。不要用它。
如果您仍然坚持使用它,它的Linux手册页会指出:
useconds_t类型是一个无符号整数类型,能够保存[01000000]范围内的整数。
,我想这是对一次性POSIX规范的引用。您应该从中得到的是POSIXualarm()
从来没有保证能够处理大于1000000的第一个参数目前还不清楚是否有任何实现处理过更大的值,但事实上POSIX指定了它,这表明至少有些实现没有。
有没有办法让乌亚拉姆工作一秒钟以上?
由于没有(不再)任何ualarm()
标准,答案必然取决于实现。根据你的陈述,我倾向于认为,在你的实现中,答案是“不”。