Python os.pipe() Method



The Python os.pipe() method of the OS module creates a pipe for inter-process communication. This method allows set of data to be passed from one process to another. This process is possible because it returns a pair of file descriptors namely "r" and "w" usable for reading and writing, respectively.

Syntax

Following is the syntax for Python os.pipe() method −

os.pipe()

Parameters

The Python os.pipe() method does not accept any parameter.

Return Value

The Python os.pipe() method returns a pair of file descriptors.

Example

The following example shows the practical demonstration of inter-process communication using pipe() method. Here, the child process can write to a pipe and the parent process can read from it.

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)

When we run above program, it produces following result −

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...
python_files_io.htm
Advertisements