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.
# 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
Reference: https://docs.python.org/3/library/os.html#os.pipe2