我想尝试一下我的手,命名管道,所以我下载了一段代码,并修改它来测试:python - os.open():没有这样的设备或地址?
fifoname = '/home/foo/pipefifo' # must open same name
def child():
pipeout = os.open(fifoname, os.O_NONBLOCK|os.O_WRONLY)
# open fifo pipe file as fd
zzz = 0
while 1:
time.sleep(zzz)
os.write(pipeout, 'Spam %03d\n' % zzz)
zzz = (zzz+1) % 5
def parent():
pipein = open(fifoname, 'r') # open fifo as stdio object
while 1:
line = pipein.readline()[:-1] # blocks until data sent
print 'Parent %d got "%s" at %s' % (os.getpid(), line, time.time())
if __name__ == '__main__':
if not os.path.exists(fifoname):
os.mkfifo(fifoname) # create a named pipe file
if len(sys.argv) == 1:
parent() # run as parent if no args
else:
child()
我试图运行该脚本,它返回此错误:
pipeout = os.open(fifoname, os.O_NONBLOCK|os.O_WRONLY) # open fifo pipe file as fd
OSError: [Errno 6] No such device or address: '/home/carrier24sg/pipefifo'
什么导致了这个错误? (我在Linux上运行的Python 2.6.5)
管道实际上是否已创建? –
@Thomas,是管道被创建。 – goh