Control de proceso y de entorno
Utilice las rutinas del control de proceso para iniciar, detener, y administrar procesos dentro de un programa. Utilice las rutinas de control de entorno para obtener y cambiar información sobre el entorno del sistema operativo.
Funciones de control de procesos y entornos
Routine | Usar |
---|---|
abort |
Anular proceso sin vaciar los búferes ni llamar a las funciones registradas por atexit y _onexit |
assert |
Prueba de error lógico |
Macros _ASSERT , _ASSERTE |
Similar a assert , pero disponible únicamente en las versiones de depuración de las bibliotecas en tiempo de ejecución |
atexit |
Programar rutinas para su ejecución al finalizar el programa |
_beginthread , _beginthreadex |
Crear un nuevo subproceso en un proceso del sistema operativo Windows |
_cexit |
Realizar procedimientos de finalización de exit (como búferes de vaciado) y después devolver el control al programa que realiza la llamada sin finalizar el proceso |
_c_exit |
Realizar procedimientos de finalización de _exit y después devolver el control al programa que realiza la llamada sin finalizar el proceso |
_cwait |
Esperar hasta que finalice otro proceso |
_endthread , _endthreadex |
Terminar un subproceso del sistema operativo Windows |
_execl , _wexecl |
Ejecutar un proceso nuevo con la lista de argumentos |
_execle , _wexecle |
Ejecutar el nuevo proceso con la lista de argumentos y el entorno dado |
_execlp , _wexeclp |
Ejecutar el nuevo proceso utilizando la variable y la lista de argumentos de PATH |
_execlpe , _wexeclpe |
Ejecutar el nuevo proceso utilizando la variable de PATH , el entorno dado y la lista de argumentos |
_execv , _wexecv |
Ejecutar un proceso nuevo con la matriz de argumentos |
_execve , _wexecve |
Ejecutar el nuevo proceso con la matriz de argumentos y el entorno dado |
_execvp , _wexecvp |
Ejecutar el nuevo proceso utilizando la variable y la matriz de argumentos de PATH |
_execvpe , _wexecvpe |
Ejecutar el nuevo proceso utilizando la variable de PATH , el entorno dado y la matriz de argumentos |
exit |
Llamar a las funciones registradas por atexit y _onexit , vaciar todos los búferes, cerrar todos los archivos abiertos y terminar proceso |
_exit |
Terminar proceso inmediatamente sin llamar a atexit o _onexit ni vaciar los búferes |
getenv , _wgetenv , , getenv_s ,_wgetenv_s |
Obtener valor de la variable de entorno |
_getpid |
Obtener número de identificador del proceso |
longjmp |
Restaurar el entorno de pila guardado, usarlo para ejecutar un valor goto no local |
_onexit |
Programar rutinas para su ejecución al finalizar el programa; usarlas para compatibilidad con Microsoft C/C++ versión 7.0 y anteriores |
_pclose |
Esperar al nuevo procesador de comandos y cerrar el flujo en la canalización asociada |
perror , _wperror |
Mensaje de error de impresión |
_pipe |
Crear una canalización de lectura y escritura |
_popen , _wpopen |
Crear la canalización y ejecutar el comando |
_putenv , _wputenv , , _putenv_s ,_wputenv_s |
Agregar o cambiar el valor de la variable de entorno |
raise |
Enviar señal al proceso de llamada |
setjmp |
Guardar el entorno de pila; usarlo para ejecutar el valor goto no local |
signal |
Controlar la señal de interrupción |
_spawnl , _wspawnl |
Crear y ejecutar un proceso nuevo con la lista de argumentos especificada |
_spawnle , _wspawnle |
Crear y ejecutar un proceso nuevo con la lista de argumentos y el entorno especificados |
_spawnlp , _wspawnlp |
Crear y ejecutar un proceso nuevo con la variable PATH y la lista de argumentos especificada |
_spawnlpe , _wspawnlpe |
Crear y ejecutar un proceso nuevo con la variable PATH , el entorno especificado y la lista de argumentos |
_spawnv , _wspawnv |
Crear y ejecutar un proceso nuevo con una matriz de argumentos especificada |
_spawnve , _wspawnve |
Crear y ejecutar un proceso nuevo con el entorno especificado y la matriz de argumentos |
_spawnvp , _wspawnvp |
Crear y ejecutar un proceso nuevo con la variable PATH y la matriz de argumentos especificada |
_spawnvpe , _wspawnvpe |
Crear y ejecutar un proceso nuevo con la variable PATH , el entorno especificado y la matriz de argumentos |
system , _wsystem |
Ejecutar comando del sistema operativo |
En el sistema operativo Windows, el proceso generado es equivalente al proceso que genera. Cualquier proceso puede utilizar _cwait
para esperar a cualquier otro proceso cuyo identificador de proceso se conoce.
La diferencia entre las familias de _exec
y _spawn
es que una función _spawn
puede devolver el control del nuevo proceso al proceso de llamada. En una función _spawn
, tanto el proceso de llamada como el nuevo proceso están presentes en la memoria, a menos que se especifique _P_OVERLAY
. En una _exec
función, el nuevo proceso superpone el proceso de llamada, por lo que el control no puede volver al proceso de llamada a menos que se produzca un error en el intento de iniciar la ejecución del nuevo proceso.
Las diferencias entre las funciones de las _exec
familias y _spawn
implican el método de buscar el archivo que se va a ejecutar como el nuevo proceso, el formulario en el que se pasan los argumentos al nuevo proceso y el método de establecimiento del entorno, como se muestra en la tabla siguiente. Utilice una función que pase una lista de argumentos cuando el número de argumentos sea constante o se conozca en tiempo de compilación. Utilice una función que pase un puntero a una matriz que contiene los argumentos cuando el número de argumentos deba determinarse en tiempo de ejecución. La información de la tabla siguiente también se aplica a sus homólogos de caracteres anchos de las funciones _spawn
y _exec
.
Familias de funciones _spawn
y _exec
Funciones | Utilizar la variable PATH para ubicar el archivo |
Convención para pasar argumentos | Configuración del entorno |
---|---|---|---|
_execl , _spawnl |
No | List | Heredado del proceso de llamada |
_execle , _spawnle |
No | List | Puntero a la tabla de entorno para el nuevo proceso que se pasa como último argumento |
_execlp , _spawnlp |
Sí | Enumerar | Heredado del proceso de llamada |
_execvpe , _spawnvpe |
Sí | Matriz | Puntero a la tabla de entorno para el nuevo proceso que se pasa como último argumento |
_execlpe , _spawnlpe |
Sí | Enumerar | Puntero a la tabla de entorno para el nuevo proceso que se pasa como último argumento |
_execv , _spawnv |
No | Matriz | Heredado del proceso de llamada |
_execve , _spawnve |
No | Matriz | Puntero a la tabla de entorno para el nuevo proceso que se pasa como último argumento |
_execvp , _spawnvp |
Sí | Matriz | Heredado del proceso de llamada |