有没有办法在C中进行任意函数超时?

时间:2010-01-29 04:27:07

标签: c

我有一个在C中运行的函数。我希望它能够超时,或者至少是非阻塞的。有没有办法在不将其作为线程运行的情况下执行此操作?

2 个答案:

答案 0 :(得分:3)

如果您不知道阻塞文件或套接字中有可用的输入,并且如果没有阻止文件或套接字,则应该使用

select()(或其特定于平台的等效项之一)

答案 1 :(得分:1)

只需在函数内部不进行阻塞调用即可使其无阻塞。如果你想让它超时,只需将你正在进行的非阻塞调用包装在一小段代码中,并检查自调用函数以来经过的时间。