Python os.pipe() 方法



OS 模块的 Python os.pipe() 方法为进程间通信创建一个管道。此方法允许将数据集从一个进程传递到另一个进程。此过程是可能的,因为它返回一对文件描述符,即 “r” 和 “w”,分别可用于读取和写入。

语法

以下是 Python os.pipe() 方法的语法 -


 os.pipe()

参数

Python os.pipe() 方法不接受任何参数。

返回值

Python os.pipe() 方法返回一对文件描述符。

以下示例显示了使用 pipe() 方法进行进程间通信的实际演示。在这里,子进程可以写入管道,父进程可以从管道中读取。


import os, sys

print ("The child will write text to a pipe and ")
print ("the parent will read the text written by child...")

# file descriptors r, w for reading and writing
r, w = os.pipe()	

processid = os.fork()
if processid:
	 	# This is the parent process	
	 	# Closes file descriptor w
	 	os.close(w)
	 	r = os.fdopen(r)
	 	print ("Parent reading....")
	 	str = r.read()
	 	print ("text =", str) 		
	 	sys.exit(0)
else:
	 	# This is the child process
	 	os.close(r)
	 	w = os.fdopen(w, 'w')
	 	print ("Child writing....")
	 	w.write("Text written by child...")
	 	w.close()
	 	print ("Child closing")
	 	sys.exit(0)

当我们运行上述程序时,它会产生以下结果——

The child will write text to a pipe and
the parent will read the text written by child...
Parent reading....
Child writing....
Child closing
text = Text written by child...