Python 如何防止缓存FUSE文件?
如何防止操作系统(或任何正在执行此操作的操作系统)在FUSE文件系统中缓存文件的大小/内容 我制作了一个小的复制示例,它使用单个文件创建了一个文件系统Python 如何防止缓存FUSE文件?,python,fuse,Python,Fuse,如何防止操作系统(或任何正在执行此操作的操作系统)在FUSE文件系统中缓存文件的大小/内容 我制作了一个小的复制示例,它使用单个文件创建了一个文件系统/foo。/foo的内容每5秒更改一次。这是我的FUSE文件系统(sample.py): 如果我cat每秒打印一次内容,持续10秒,我希望看到打印出2或3个不同的内容,但我看到相同的内容10次: $ for i in $(seq 1 10); do > cat /tmp/dump/foo > sleep 1 > done
/foo
。/foo
的内容每5秒更改一次。这是我的FUSE文件系统(sample.py
):
如果我cat
每秒打印一次内容,持续10秒,我希望看到打印出2或3个不同的内容,但我看到相同的内容10次:
$ for i in $(seq 1 10); do
> cat /tmp/dump/foo
> sleep 1
> done
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
0123456789
如果我在提交文件之前ls-al
,我会得到我所期望的:
$ for i in $(seq 1 10); do
> ls -al /tmp/dump >> /dev/null
> cat /tmp/dump/foo
> sleep 1
> done
01234567
01234567
01234567
01234567
012345678
012345678
012345678
012345678
012345678
0123456789
在运行第一个shell命令时,如何获得第二个shell命令的输出?只需打开这些行即可
st = fuse.FuseFileInfo()
accmode = os.O_RDONLY | os.O_WRONLY | os.O_RDWR
if (flags & accmode) != os.O_RDONLY:
return -errno.EACCES
setattr(st,'direct_io',True)
#setattr(st,keep,False)
return st
如果不需要缓存文件,请将direct\u io切换为True。这看起来像是将
direct\u io=True
传递到保险丝(
调用将阻止缓存。它似乎可以普遍阻止缓存。能够逐个文件阻止缓存会很好。
st = fuse.FuseFileInfo()
accmode = os.O_RDONLY | os.O_WRONLY | os.O_RDWR
if (flags & accmode) != os.O_RDONLY:
return -errno.EACCES
setattr(st,'direct_io',True)
#setattr(st,keep,False)
return st