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