什么是 Perl 的 alarm()
在 C for Linux 中的等价物? AFAIK Windows 中没有 native alarm
函数,但是 Perl 提出了一个我并不真正好奇的解决方法。
对于那些不了解 alarm
的人: Perl alarm
编辑: 我实际上需要毫秒精度的警报。我可以在线程中使用的那个(在多线程应用程序中)。
最佳答案
就像是:
unsigned int alarm (unsigned int secs, unsigned int usecs) {
struct itimerval old, new;
new.it_interval.tv_usec = 0;
new.it_interval.tv_sec = 0;
// usecs should always be < 1000000
secs += usecs / 1000000;
usecs = usecs % 1000000;
// set the alarm timer
new.it_value.tv_usec = (long int) usecs;
new.it_value.tv_sec = (long int) secs;
// type ITIMER_REAL for wallclock timer
if (setitimer (ITIMER_REAL, &new, &old) < 0)
return 0;
else
return old.it_value.tv_sec;
}
见:http://www.gnu.org/software/libc/manual/html_node/Setting-an-Alarm.html
关于c - Perl alarm() 在 C 中等效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17052844/