El módulo OS en Python proporciona funciones para interactuar con el sistema operativo. OS viene bajo los módulos de utilidad estándar de Python. Este módulo proporciona una forma portátil de usar la funcionalidad dependiente del sistema operativo.
os.WCOREDUMP()
El método en Python se usa para verificar si se generó un volcado de núcleo para el proceso. Este método toma el código de estado del proceso como lo devuelve os.wait()
o os.system()
el os.waitpid()
método como parámetro.
Sintaxis: os.WCOREDUMP(estado)
Parámetros:
estado: este parámetro toma el código de estado del proceso (un valor entero) tal como lo devuelve el método os.system(), os.wait() o os.waitpid().Tipo de devolución: este método devuelve un valor booleano de la clase ‘bool’. Se devuelve True si se generó un volcado de núcleo para el proceso; de lo contrario, devuelve False.
Código #1: Uso del os.WCOREDUMP()
método
# Python program to explain os.WCOREDUMP() 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 : # Wait for the completion of # the child process and get # child's pid and # exit status indication info = os.wait() # info is a tuple # info[0] represents child's id # info[1] represents exit status code print("\nIn parent process") # Check if core dump was # generated for the child process core_dump = os.WCOREDUMP(info[1]) print("Was core dump generated?", core_dump) else : print("In Child process") print("Process ID:", os.getpid()) print("Hello ! Geeks") # os.abort() method will # generate a SIGABRT signal # to the current process # and will produce core dump. os.abort()
In Child process Process ID: 15059 Hello! Geeks In parent process Was core dump generated? True
Código #2: Uso del os.WCOREDUMP()
método
# Python program to explain os.WCOREDUMP() 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 : # Wait for the completion of # first child process and get # its pid and # exit status indication # using os.waitpid() method child1_info = os.waitpid(pid, 0) # Wait for the completion of # second child process and get # its pid and exit status indication # using os.waitpid() method child2_info = os.waitpid(pid2, 0) # child_info is a tuple, where # child_info[0] represents child's id # child_info[1] represents exit status code print("\nIn parent process") # Check if core dump was # generated for the # first child process core_dump = os.WCOREDUMP(child1_info[1]) print("Was core dump generated for first child process?") print(core_dump) # Check if core dump was # generated for the # first child process core_dump = os.WCOREDUMP(child2_info[1]) print("\nWas core dump generated for second child process?") print(core_dump) else : print("\nIn second child process") print("Process id:", os.getpid()) print("Hey ! there") print("Exiting") else : print("In Child process") print("Process ID:", os.getpid()) print("Hello ! Geeks") # os.abort() method will # generate a SIGABRT signal # to the current process # and will produce core dump. os.abort()
In first child process Process ID: 16289 Hello! Geeks In second child process Process id: 16290 Hey! there Exiting In parent process Was core dump generated for first child process? True Was core dump generated for second child process? False
Referencias: https://docs.python.org/3/library/os.html#os.WCOREDUMP