2012-07-12 77 views
3

我有一個特定的硬件驅動程序,它要求我在其文件描述符上調用_write(fd, 0, 0)以觸發某些特定行爲。將0個字符寫入文件描述符

我希望能夠從Python做到這一點 - 請任何人都可以提出一種方法來實現這一點?


EDIT(應該已經把這個開頭,對不起!):已經試過和不工作

事情:

f.write("") 
os.write(fd, "") 
os.fdsync(fd) 
+3

'f.write(「」)'工作嗎? – Amber 2012-07-12 15:55:16

+1

我猜測它不會起作用,因爲雖然'「」是零長度,但它不是空引用(地址爲'0')。 – kindall 2012-07-12 16:06:57

+0

您可能不得不直接調用Windows特定功能來完成此操作。看看內置的'ctypes'模塊和[PyWin32](http://sourceforge.net/projects/pywin32/)模塊。無論哪種方式,你將不得不有一些win32 API的知識。 – martineau 2012-07-12 16:31:05

回答

3

如果你真的需要有一個空指針(一個可怕的驅動程序設計 - 一個ioctl本來會好得多),你將不得不通過​​去。

至少,

import ctypes 
ctypes.cdll.msvcrt._write(1, 0, 0) 

似乎工作。

+1

我不需要有一個NULL指針,它是寫入零字節觸發我所需要的! – 2012-07-13 08:45:37

1

os模塊作爲函數調用write

import os 
os.write(fd, b"")