Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 仅当文件自上次调用os.Lstat后发生更改时才调用os.Lstat_Go_System Calls - Fatal编程技术网

Go 仅当文件自上次调用os.Lstat后发生更改时才调用os.Lstat

Go 仅当文件自上次调用os.Lstat后发生更改时才调用os.Lstat,go,system-calls,Go,System Calls,我正在尝试编写一个程序,calcsize,用于计算所有子目录的大小。我想为结果创建一个缓存,并且仅当目录自上次运行程序以来发生了更改时才重新遍历该目录 比如: ./calcsize //outputs /absolute/file/path1/ 1000 Bytes /absolute/file/path2/ 2000 Bytes 我已经在用我自己的walk实现遍历dirs了,因为内置的gofilepath.walk已经在每个文件上调用了Lstat 有没有办法在不调用每个文件的Lstat的情

我正在尝试编写一个程序,
calcsize
,用于计算所有子目录的大小。我想为结果创建一个缓存,并且仅当目录自上次运行程序以来发生了更改时才重新遍历该目录

比如:

./calcsize
//outputs 
/absolute/file/path1/ 1000 Bytes
/absolute/file/path2/ 2000 Bytes
我已经在用我自己的walk实现遍历dirs了,因为内置的go
filepath.walk
已经在每个文件上调用了
Lstat


有没有办法在不调用每个文件的
Lstat
的情况下知道目录或文件集是否已更改?可能是一个我不知道的系统调用?

这是否以及如何实现在很大程度上取决于您的操作系统。但你可以看看哪些声称提供这种服务(我从未使用过——我刚刚通过谷歌找到)


一般来说,看看任何提供“观看”功能的围棋程序。举个例子,但也有其他的(甚至可能在标准库中)。

一般来说,没有。不过,您可能想看看:


使用这些数据,如果你只关心文件,你可以跳过一些stat调用。

在阅读了之后,这种方法可能会有很多问题。答案肯定是正确的……我将在对问题进行研究时发现一些优化来修正我的问题。