2012-07-12 99 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"")