当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python os.WEXITSTATUS()用法及代码示例


Python中的OS模块提供了与操作系统进行交互的函数。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的函数的便携式方法。

os.WEXITSTATUS()Python中的方法用于获取exit(2)系统调用中的进程使用的整数参数,如果os.WIFEXITED(status)是真的。如果os.WIFEXITED(status)如果为False,则该方法返回无意义的值。

用法: os.WEXITSTATUS(status)

参数:
status:此参数采用os.system(),os.wait()方法或os.waitpid()方法返回的过程状态代码(整数值)。

返回类型:此方法返回exit(2)系统调用中的进程使用的整数值。

代码:用于os.WEXITSTATUS()方法

# 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.

参考文献: https://docs.python.org/3/library/os.html#os.WEXITSTATUS



相关用法


注:本文由纯净天空筛选整理自ihritik大神的英文原创作品 Python | os.WEXITSTATUS() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。