将0个字符写入文件描述符

3

我有一个特殊的硬件驱动程序,需要我调用_write(fd,0,0)来触发一些特定的行为。

我想从Python中实现这个功能-请问有什么方法可以做到这一点吗?


编辑(应该在开头放这个,抱歉!):

尝试过但不管用的事情:

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

3
f.write("") 可以工作。 - Amber
1
我猜它不会起作用,因为虽然 "" 是零长度,但它不是空引用(地址为 0)。 - kindall
你可能需要直接调用Windows特定的函数来完成这个任务。看一下内置的ctypes模块和PyWin32模块。无论哪种方式,你都需要对win32 API有一些了解。 - martineau
2个回答

3
如果你真的需要一个空指针(这是多么糟糕的驱动程序设计 - 使用ioctl会更好得多),则必须通过ctypes来实现。
至少,
import ctypes
ctypes.cdll.msvcrt._write(1, 0, 0)

看起来工作正常。


1
我不需要一个空指针,只是写入零字节就能触发我所需的操作! - Martin Thompson

1

os 模块有一个名为 write 的函数:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接