我想嘗試一下我的手,命名管道,所以我下載了一段代碼,並修改它來測試: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