Python有同步吗?

dfr*_*kow 15 python linux sync

同步手册页说:

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

Python有调用来做这个吗?

PS不是fsync,我明白了.

bba*_*les 17

Python 3.3有os.sync,请参阅docs.该证实这是同样的事情.

对于Python 2,您可能必须对系统进行外部调用.


jsb*_*eno 14

如上所述,Python 3.3具有对Python 2.x的调用,因为它是一个简单的系统调用,不需要来回传递数据,您可以使用ctypes进行调用:

>>> import ctypes
>>> libc = ctypes.CDLL("libc.so.6")
>>> libc.sync()
0
Run Code Online (Sandbox Code Playgroud)


Fre*_*ord 7

结合这两个 答案,我在模块的顶部使用以下内容:

if hasattr(os, 'sync'):
    sync = os.sync
else:
    import ctypes
    libc = ctypes.CDLL("libc.so.6")
    def sync():
        libc.sync()
Run Code Online (Sandbox Code Playgroud)

  • 使用`def sync()`而不是`sync = libc.sync`的任何特殊原因? (3认同)