Python | os.pipe 函數

怎樣創建管道,寫入和讀取數據

最近更新時間 2020-12-10 14:21:22

os.pipe 函數創建一個管道,返回一對分別用於讀取和寫入的文件描述符 (r, w)。

管道是一種將信息從一個進程傳遞到另一個進程的方法。它僅提供單向通信,並且傳遞的信息由系統保留,直到被接收過程讀取為止。

這個概念是由道格拉斯·麥克羅伊為 Unix 命令行發明的,因與物理上的管道相似而得名。

函數定義

os.pipe()
# 函數定義

def pipe() -> Tuple[int, int]: ...

參數

  • checkNone - 無。

返回值

  • checkTuple[int, int] - 讀和寫文件描述符。

示例1: - 使用 os.pipe() 函數創建管道進行讀寫。

# coding=utf-8

# Python3 代碼
# 講解怎樣使用 os.pipe() 函數創建管道進行讀寫

# 引入 os 庫
import os

# 創建一個管道
r, w = os.pipe()

# 創建一個子進程
# 父進程用於讀,子進程用於寫
pid = os.fork()

if pid > 0:
    # 父進程
    # 關閉讀文件
    os.close(r)

    # 寫入數據
    print("Parent process is writing") 
    text = b"Hello child process"
    os.write(w, text) 
    print("Written text:", text.decode())

else:
    # 子進程
    # 關閉讀文件
    os.close(w)

    # 讀取父進程數據
    print("\nChild Process is reading") 
    r = os.fdopen(r) 
    print("Read text:", r.read()) 

Parent process is writing
Written text: Hello child process
Child Process is reading
Read text: Hello child process
rss_feed