我有一个特定的硬件驱动程序,它要求我在其文件描述符上调用_write(fd, 0, 0)
以触发某些特定行为。将0个字符写入文件描述符
我希望能够从Python做到这一点 - 请任何人都可以提出一种方法来实现这一点?
EDIT(应该已经把这个开头,对不起!):已经试过和不工作
事情:
f.write("")
os.write(fd, "")
os.fdsync(fd)
我有一个特定的硬件驱动程序,它要求我在其文件描述符上调用_write(fd, 0, 0)
以触发某些特定行为。将0个字符写入文件描述符
我希望能够从Python做到这一点 - 请任何人都可以提出一种方法来实现这一点?
EDIT(应该已经把这个开头,对不起!):已经试过和不工作
事情:
f.write("")
os.write(fd, "")
os.fdsync(fd)
如果你真的需要有一个空指针(一个可怕的驱动程序设计 - 一个ioctl本来会好得多),你将不得不通过去。
至少,
import ctypes
ctypes.cdll.msvcrt._write(1, 0, 0)
似乎工作。
我不需要有一个NULL指针,它是写入零字节触发我所需要的! – 2012-07-13 08:45:37
的os
模块作为函数调用write
:
import os
os.write(fd, b"")
'f.write(“”)'工作吗? – Amber 2012-07-12 15:55:16
我猜测它不会起作用,因为虽然'“”是零长度,但它不是空引用(地址为'0')。 – kindall 2012-07-12 16:06:57
您可能不得不直接调用Windows特定功能来完成此操作。看看内置的'ctypes'模块和[PyWin32](http://sourceforge.net/projects/pywin32/)模块。无论哪种方式,你将不得不有一些win32 API的知识。 – martineau 2012-07-12 16:31:05