Python是否已同步?

问题描述 投票:15回答:3

sync man page说:

sync()导致对文件元数据和数据的所有缓冲修改 写入底层文件系统。

Python是否有调用此功能?

P.S。不是fsync,我明白了。

python linux sync
3个回答
17
投票

Python 3.3具有os.sync,请参见the docssource确认是同一件事。

对于Python 2,您可以将external call设置为系统:

from subprocess import check_call
check_call(['sync'])

14
投票

如上所述,Python 3.3可以调用-在Python 2.x上,因为它很简单系统调用,不需要来回传递数据,可以使用ctypes进行调用:

>>> import ctypes
>>> libc = ctypes.CDLL("libc.so.6")
>>> libc.sync()
0

7
投票

结合two answers,我在模块顶部使用以下内容:

if hasattr(os, 'sync'):
    sync = os.sync
else:
    import ctypes
    libc = ctypes.CDLL("libc.so.6")
    def sync():
        libc.sync()
© www.soinside.com 2019 - 2024. All rights reserved.