C:如何在flock上添加超时?

时间:2015-11-09 17:38:13

标签: c flock

在C编程中,有没有办法在flock()上实现超时?

感谢。

#include <sys/file.h>

int flock(int fd, int operation);

1 个答案:

答案 0 :(得分:0)

您可以使用SIG_ALARM执行此操作。 http://www.gnu.org/software/libc/manual/html_node/Setting-an-Alarm.html 这有点棘手,特别是如果你正在处理多个线程。您必须确保您的系统将sig警报传递给始终设置它的线程,并且可能不是这种情况......在这种情况下您需要使用pthread_sigmask http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_sigmask.html 确保只有你的线程启用了信号...但是如果2个线程同时阻塞了flock怎么办?您需要为此添加某种互斥包装。