当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python os.pipe2()用法及代码示例


Python中的OS模块提供了与操作系统进行交互的函数。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的函数的便携式方法。

管道是一种将信息从一个进程传递到另一个进程的方法。它仅提供one-way通信,并且传递的信息由系统保留,直到被接收进程读取为止。
os.pipe2()Python中的方法用于创建自动设置了标志的管道。

用法: os.pipe2(flags)

参数:
flags:flags参数是通过对os.O_NONBLOCK和os.O_CLOEXEC值中的一个或多个进行“或”运算来构造的。

返回类型:此方法返回分别可用于读取和写入的一对文件描述符(r,w)。

代码:使用os.pipe2()方法创建带有自动设置标志的管道
# Python program to explain os.pipe2() method  
  
# importing os module  
import os 
  
  
# Create a pipe with 
# flag set automatically 
# os.O_NONBLOCK flag tells  
# that file descriptor  
# is in non-blocking mode 
flags = os.O_NONBLOCK 
r, w = os.pipe2(flags) 
  
# The returned file descriptor r and w 
# can be used for reading and 
# writing respectively. 
  
# We will create a child process 
# and using these file descriptor 
# the parent process will write  
# some text and child process will 
# read the text written by the parent process 
  
# Create a child process 
pid = os.fork() 
  
# pid greater than 0 represents 
# the parent process 
if pid > 0:
  
    # This is the parent process  
    # Closes file descriptor r 
    os.close(r) 
  
    # Write some text to file descriptor w  
    print("Parent process is writing") 
    text = b"Hello child process"
    os.write(w, text) 
    print("Written text:", text.decode()) 
  
      
else:
  
    # This is the child process  
    # Closes file descriptor w 
    os.close(w) 
  
    # Read the text written by parent process 
    print("\nChild Process is reading") 
    r = os.fdopen(r) 
    print("Read text:", r.read())
输出:
Parent process is writing
Text written:Hello child process

Child Process is reading
Text read:Hello child process

参考: https://docs.python.org/3/library/os.html#os.pipe2



相关用法


注:本文由纯净天空筛选整理自ihritik大神的英文原创作品 Python | os.pipe2() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。