【发布时间】:2019-06-23 16:35:49
【问题描述】:
为了简要解释我为什么需要这个,
我目前正在通过stat(2) 进行检测。我无法控制文件描述符(可能会被其他线程用完,因为我的代码被注入以替换系统调用),所以我不能使用fstat(2)(更快)。我需要做这个检查很多次,那么有没有更快的方法来做同样的事情?
我在没有父子关系的不同进程中检查同一个文件。
【问题讨论】:
-
我认为这是在 Linux 上,但为了清楚起见,您应该将其添加到您的问题中。
-
为什么一定要快?此外:鉴于 stat
stat()是单个系统调用,没有办法做得更好。 -
您是否有性能问题,或者您正在做一些过早的优化?
-
我需要多次执行此检查,那么是否有更快的方法来执行相同的操作? 听起来像 a TOCTOU bug 和 an XY problem开机。什么实际的问题是不断检查应该解决的文件大小?
-
真正的问题是:您的程序将根据这些信息做什么?如果文件的大小==0,会发生什么?如果它的大小> 0,会发生什么? [另请参阅:Andrews TOCTOU-link] 奖励:也许您可以使用 inotify?