當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python os.WIFEXITED()用法及代碼示例


Python中的OS模塊提供了與操作係統進行交互的函數。操作係統屬於Python的標準實用程序模塊。該模塊提供了使用依賴於操作係統的函數的便攜式方法。

os.WIFEXITED()Python中的方法用於檢查是否使用exit(2)係統調用退出了進程。此方法將os.system(),os.wait()或os.waitpid()方法返回的進程狀態代碼作為參數,如果該進程使用exit(2)係統調用退出,則返回True,否則返回False。

用法: os.WIFEXITED(status)

參數:
status:此參數采用os.system(),os.wait()方法或os.waitpid()方法返回的過程狀態代碼(整數值)。

返回類型:如果使用exit(2)係統調用退出的進程返回False,則此方法返回True。

代碼:用於os.WIFEXITED()方法

# Python program to explain os.WIFEXITED() 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 > 0:
  
    # Create one more child 
    pid2 = os.fork() 
      
    if pid2 > 0:
          
        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 
  
        # Check if the first child  
        # exited using exit(2) system call 
        # using os.WIFEXITED() method 
        if os.WIFEXITED(info1[1]):
            print("First child exited using exit(2) system call.") 
        else :
            print("First child does not exited using \ 
exit(2) system call.")  
          
      
        # Check if the second child  
        # exited using exit(2) system call 
        # using os.WIFEXITED() method 
        if os.WIFEXITED(info2[1]):
            print("Second child exited using exit(2) system call.") 
        else :
            print("Second 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 using exit(2) system call         
    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 exited using exit(2) system call.
Second child does not exited using exit(2) system call.

參考文獻: https://docs.python.org/3/library/os.html#os.WIFEXITED



相關用法


注:本文由純淨天空篩選整理自ihritik大神的英文原創作品 Python | os.WIFEXITED() method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。