Python | os.pipe 函数

Lasted 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