在Python中,可以使用os.pipe()
函數來創建一個管道,它將返回一個包含兩個文件描述符的元組,分別代表管道的讀和寫的端口。
以下是一個簡單的例子,展示了如何使用os.pipe()
函數創建一個管道,并在父進程和子進程之間進行通信。
import os
# 創建管道
r, w = os.pipe()
# 創建子進程
pid = os.fork()
if pid > 0:
# 父進程
os.close(w) # 關閉寫端口
with os.fdopen(r) as f:
data = f.read()
print("父進程接收到消息:", data)
else:
# 子進程
os.close(r) # 關閉讀端口
msg = "這是子進程發送的消息"
with os.fdopen(w, 'w') as f:
f.write(msg)
f.close()
在上面的例子中,os.pipe()
函數創建了一個管道,并返回了兩個文件描述符r
和w
,它們分別代表管道的讀和寫的端口。
父進程中,我們關閉了寫端口w
,并使用os.fdopen()
函數將讀端口r
轉換為文件對象f
,然后從中讀取數據。
子進程中,我們關閉了讀端口r
,并使用os.fdopen()
函數將寫端口w
轉換為文件對象f
,然后向其中寫入數據。
當子進程寫入數據后,父進程將從管道的讀端口讀取數據,并打印出來。