2013-04-13 36 views

回答

12

至於說,Python的3.3具備呼叫 - 關於Python 2.x的,因爲它是一個簡單的 系統調用,無需數據傳遞來回,你可以使用ctypes的撥打電話:

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

哇,幻想。 :)我會很緊張,libc.so.6可能並不總是存在(雖然我在UNIX上),所以可能是子進程或「同步」是我的方式。 – dfrankow

+0

「或\'sync \'..」。無法預覽的格式化 – dfrankow

6

結合twoanswers,我用我的模塊的頂部以下內容:

if hasattr(os, 'sync'): 
    sync = os.sync 
else: 
    import ctypes 
    libc = ctypes.CDLL("libc.so.6") 
    def sync(): 
     libc.sync() 
+2

使用'def sync()'而不是'sync = libc.sync'的任何特定原因? – pepoluan

+1

實際上有啊,不能用意外的參數調用;) –