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に変換し、そこにデータを書き込みます。

子プロセスがデータを送信すると、親プロセスはパイプの読み込み口からデータを読み取って、画面に印刷する。

bannerAds