Cuando un proceso desarrolla un proceso infantil, ocasionalmente es importante que el proceso de los padres espere hasta que el niño lo haya completado antes de continuar. Esto es exactamente lo que logra la función del sistema Wait ().
Esperar hace que el padre espere a que el niño altere su estado. El cambio de estado podría deberse a que el proceso infantil termina, detenido por una señal o reanudado por una señal. En algunas circunstancias, cuando el proceso de un niño deja de no establecer el estado, el proceso principal debe ser notificado de la alteración del niño en el estado o el estado de terminación. En ese caso, el proceso principal utiliza funciones como Wait () para preguntar sobre la actualización en el estado del proceso infantil.
Esperar () suspender el proceso de la persona que llama hasta que el sistema reciba información sobre el estado del niño final. Wait () Devuelve instantáneamente si el sistema ya tiene información de estado en un proceso infantil terminado cuando se invoca. Si el proceso de la persona que llama recibe la señal con acción para ejecutar un controlador de señal o finalizar el proceso, Wait () también se termina.
La función del sistema WaitPID () detiene el proceso actual hasta que el argumento PID especifica a un niño con un estado alterado. WaitPID () espera únicamente a los niños terminados por defecto; Sin embargo, este comportamiento se puede cambiar. La llamada del sistema Wait () acepta solo un parámetro, que contiene la información y las actualizaciones del proceso. Si no le importa el estado de salida del proceso del niño y solo le importa hacer que el padre espere al niño, use nulo como valor. En esta guía, explicaremos un ejemplo para la comprensión de la llamada del sistema Wait () en la programación C.
Requisitos previos
Ejemplo para elaborar el sistema de espera del sistema de espera en c
Abra el terminal y verifique si el compilador GCC está instalado o no. Si no está instalado, utilice el comando adjunto:
$ Sudo apt install gccEn ubuntu 20.Sistema 04, primero debe crear un nuevo archivo con el .extensión C. Para lograr esto, vaya a su directorio de inicio y genere un nuevo archivo vacío titulado "Wait1". También puede usar el comando nano en su terminal para hacerlo.
$ nano espera1.CDespués de crear el "espera1.Archivo C ", se abrirá en un editor de texto GNU en su sistema Linux y pegará el código a continuación en él. Después de eso, guarde y salga del programa.
El archivo de encabezado C/C ++ es el punto de entrada de su código a las muchas declaraciones constantes de la API de POSIX OS. Varios tipos derivados fundamentales se incluyen en el encabezado y deben utilizarse siempre que sea posible. es un archivo de encabezado que comprende la información necesaria para incluir rutinas de entrada/salida en nuestro programa. Las constantes simbólicas que se utilizarán con Waitpid se definen en el . También hemos utilizado la llamada del sistema de la horquilla en el programa.
La llamada del sistema Fork () se utiliza para iniciar un nuevo proceso, conocido como proceso infantil, que se ejecuta en paralelo con el proceso de llamada de la bifurcación () que es el proceso principal. Ambos procesos implementarán la siguiente instrucción después de la llamada del sistema Fork () cuando se haya establecido un nuevo proceso infantil. Un proceso infantil comparte el mismo "contador de programa" de la PC, registros de CPU y abrir archivos como padre. Devuelve un valor entero sin parámetros. El proceso comienza con la impresión de "antes del bifurcado."Luego, utilizando la llamada del sistema Fork (), se crea un proceso infantil.
La llamada del sistema Wait () se introduce en la sección principal del código. Como resultado, el proceso principal se suspende tan pronto como el procesador comienza a ejecutar el padre porque la declaración inicial está esperando (nula). Como resultado, el proceso infantil se ejecuta en primer lugar, y todas las líneas de salida pertenecen al proceso infantil. La llamada del sistema NULL en WAIT () indica que no sabremos sobre la transición del estado del niño. Ahora, de nuevo, comience su terminal. En Ubuntu 20.04, use la instrucción GCC a continuación, precedida por el nombre de archivo.
$ GCC Wait1.CAhora ejecute el código con la ayuda del siguiente comando fijo en el terminal.
ps ./a.afueraComo ya se explica, la identificación de los padres y el hijo de los procesos se mostrará con la ayuda de una llamada al sistema de espera.
Conclusión
Este artículo demostró el uso de la llamada del sistema Wait () en la programación C. Hemos implementado uno de los ejemplos para mostrar la implementación exitosa de la llamada del sistema Wait (). Todo el código también se describe en detalle para la comprensión del usuario. Espero que implementen y use fácilmente la llamada del sistema Wait () cuando sea necesario.