_spawnvpe, _wspawnvpe
Crea y ejecuta un nuevo proceso.
Importante
Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para obtener más información, vea Funciones de CRT no admitidas con /ZW.
intptr_t _spawnvpe(
int mode,
const char *cmdname,
const char *const *argv,
const char *const *envp
);
intptr_t _wspawnvpe(
int mode,
const wchar_t *cmdname,
const wchar_t *const *argv,
const wchar_t *const *envp
);
Parámetros
mode
Modo de ejecución para el proceso de llamadacmdname
Ruta de acceso del archivo que se va a ejecutarargv
Matriz de punteros a argumentos. El argumento argv[0] suele ser un puntero a una ruta de acceso en modo real o al nombre del programa en modo protegido; de argv[1] a argv[n] son punteros a las cadenas de caracteres que forman la nueva lista de argumentos. El argumento argv[n +1] debe ser un puntero NULL para marcar el final de la lista de argumentos.envp
Matriz de punteros a la configuración del entorno
Valor devuelto
El valor devuelto de un _spawnvpe o _wspawnvpe sincrónico (_P_WAIT especificado para mode) es el estado de salida del nuevo proceso. El valor devuelto de un _spawnvpe o _wspawnvpe asincrónico (_P_NOWAIT o _P_NOWAITO especificado para mode) es el identificador de proceso. El estado de salida es 0 si el proceso finalizó normalmente. Puede establecer el estado de salida en un valor distinto de cero si el proceso generado llama específicamente a la rutina exit con un argumento distinto de cero. Si el nuevo proceso no estableció explícitamente un estado de salida positivo, un estado de salida positivo indica un resultado anormal con una anulación o una interrupción. Un valor devuelto de –1 indica un error (el nuevo proceso no se ha iniciado). En este caso, errno se establece en uno de los valores siguientes:
E2BIG
La lista de argumentos supera los 1024 bytesEINVAL
El argumento mode no es válidoENOENT
El archivo o la ruta de acceso no se encuentraENOEXEC
El archivo especificado no es ejecutable o no tiene un formato de archivo ejecutable válidoENOMEM
Memoria insuficiente para ejecutar el nuevo proceso
Vea _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de retorno.
Comentarios
Cada una de estas funciones crea y ejecuta un proceso nuevo, pasando una matriz de punteros a los argumentos de la línea de comandos y una matriz de punteros a la configuración del entorno. Estas funciones usan la variable de entorno PATH para buscar el archivo que se va a ejecutar.
Estas funciones validan sus parámetros. Si cmdname o argv es un puntero nulo, o si argv señala a un puntero nulo, o argv[0] es una cadena vacía, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones establecen errno en EINVAL y devuelven -1. No se genera ningún proceso nuevo.
Requisitos
Rutina |
Encabezado necesario |
---|---|
_spawnvpe |
<stdio.h> o <process.h> |
_wspawnvpe |
<stdio.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, vea Compatibilidad.
Ejemplo
Vea el ejemplo de Funciones _spawn y _wspawn.