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.
os.WEXITSTATUS()
method in Python is used to get the integer parameter used by a process in exit(2) system call if os.WIFEXITED(status)
is True. If os.WIFEXITED(status)
is False then the method returns a meaningless value.
Syntax: os.WEXITSTATUS(status)
Parameter:
status: This parameter takes process status code (an integer value) as returned by os.system(), os.wait() or os.waitpid() method.Return type: This method returns an integer value used by a process in exit(2) system call.
Code: Use of os.WEXITSTATUS()
method
# Python program to explain os.WEXITSTATUS() method # importing os module import os
# Create a child process # using os.fork() method pid = os.fork()
# pid greater than 0 # indicates the parent process if pid :
# Create one more child
pid2 = os.fork()
if pid2 :
print ( "\nIn parent process" )
# Wait for the completion
# of first child process and
# get its pid and
# exit status indication using
# os.waitpid() method
info1 = os.waitpid(pid, 0 )
# Wait for the completion
# of second child process and
# get its pid and
# exit status indication using
# os.waitpid() method
info2 = os.waitpid(pid2, 0 )
# os.waitpid() method returns a tuple
# first attribute represents child's pid
# while second one represents
# exit status indication
# Get the integer parameter
# used first child process
# in exit(2) system call
# firstly check if
# os.WIFEXITED() is True or not
if os.WIFEXITED(info1[ 1 ]) :
code = os.WEXITSTATUS(info1[ 1 ])
print ( "First child's exit code:" , code)
else :
print ( "First child does not exited using exit(2) system call." )
# Get the integer parameter
# used second child process
# in exit(2) system call
# firstly check if
# os.WIFEXITED() is True or not
if os.WIFEXITED(info2[ 1 ]) :
code = os.WEXITSTATUS(info2[ 1 ])
print ( "\nSecond child's exit code:" , code)
else :
print ( "\nSecond child does not exited using exit(2) system call." )
else :
print ( "\nIn second child process" )
print ( "Process ID:" , os.getpid())
print ( "Hey ! there" )
print ( "Second child aborted" )
# os.abort() method will
# generate a SIGABRT signal
# to the current process.
os.abort()
else :
print ( "In first child process" )
print ( "Process ID:" , os.getpid())
print ( "Hello ! Geeks" )
print ( "First child exiting.." )
# Exit with status code 5
# using os._exit() method
os._exit( 5 )
|
In first child process Process ID: 11614 Hello! Geeks First child exiting.. In second child process Process ID: 11615 Hey! there Second child aborted In parent process First child's exit code: 5 Second child does not exited using exit(2) system call.
References: https://docs.python.org/3/library/os.html#os.WEXITSTATUS