2013-04-13 12 views

Odpowiedz

12

Jak powiedział, Python 3.3 ma połączenia - na Python 2.x, ponieważ jest prosty wywołanie systemowe, wymagające żadne dane mają być przekazywane w tę iz powrotem, można użyć ctypes, aby wykonać połączenie:

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

Whoa, fantazyjne. :) Byłbym zdenerwowany, że libc.so.6 może nie zawsze istnieć (chociaż jestem w UNIX), więc prawdopodobnie podproces lub 'sync' jest dla mnie drogą. – dfrankow

+0

"lub \" sync \ '..". Darnowanie formatowania bez podglądu – dfrankow

6

Łącząc twoanswers używam następujących w górnej części mojego modułu:

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

Jakiś szczególny powód używania 'def sync()' zamiast 'sync = libc.sync'? – pepoluan

+1

Ah faktycznie jest, nie można wywołać z parametrami przez przypadek;) –

Powiązane problemy