Open In App

Python | os.pipe2() method

OS module in Python provides functions for interacting with the operating system. OS comes under Python’s standard utility modules. This module provides a portable way of using operating system dependent functionality.

A pipe is a method to pass information from one process to another process. It offers only one-way communication and the passed information is held by the system until it is read by the receiving process.
os.pipe2() method in Python is used to create a pipe with flags set automatically.



Syntax: os.pipe2(flags)

Parameter:
flags: The flags parameter is constructed by ORing together one or more of os.O_NONBLOCK and os.O_CLOEXEC values.



Return Type: This method returns a pair of file descriptors (r, w) usable for reading and writing, respectively.

Code: Use of os.pipe2() method to create a pipe with flags set automatically




# 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())

Output:
Parent process is writing
Text written: Hello child process

Child Process is reading
Text read: Hello child process

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


Article Tags :