createpipe の Python での呼び出し方
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()関数はパイプを作成し、パイプの読み込みと書き込み用のポートを表す、2つのファイル記述子rとwを返します。
親プロセス側で書き込み側のポートwを閉じ、読み込み側のポートrをos.fdopen()関数でファイルオブジェクトfに変換してそこからデータを読み取っている
子プロセスでは、読み込みポートrを閉じ、os.fdopen()関数を使って書き込みポートwをファイルオブジェクトfに変換し、そこにデータを書き込みます。
子プロセスがデータを送信すると、親プロセスはパイプの読み込み口からデータを読み取って、画面に印刷する。