在C中使用阻塞选项的access()

时间:2014-04-19 13:53:30

标签: c

我刚刚学会了如何在C中检查文件是否存在,而不用open()打开它。我想问的是,是否有选项或标志或其他指令检查文件是否存在,但阻止该过程直到该文件存在。像这样:

    while(access("socket", F_OK) !=0);

但是没有所有这个处理周期......有点像选择但要检查文件是否存在。

2 个答案:

答案 0 :(得分:1)

没有办法可以移植,并且在某些文件系统(例如某些网络文件系统)上根本没有任何方法可以完全执行此操作而无需定期检查文件是否存在

也就是说,有不可移植的方法可以覆盖广泛使用的大多数平台:

答案 1 :(得分:0)

不,没有标准功能可以满足您的要求。

您检查的方式很糟糕,因为它会在检查时消耗尽可能多的CPU时间。您至少需要在循环中添加延迟,例如:

while(access("socket", F_OK) !=0) sleep(1);

更好的解决方案是监控目录以进行更改。没有任何标准功能可以执行此操作,但有各种特定于操作系统的方法。有关可能性,请参阅Monitor directory for new files only