_spawnvp, _wspawnvp
Crea un proceso y lo ejecuta.
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 _spawnvp(
int mode,
const char *cmdname,
const char *const *argv
);
intptr_t _wspawnvp(
int mode,
const wchar_t *cmdname,
const wchar_t *const *argv
);
Parámetros
mode
Modo de ejecución para llamar al proceso.cmdname
Ruta de acceso del archivo que se va a ejecutar.argv
Matriz de punteros a argumentos. El argumento argv[0] suele ser un puntero a una ruta en modo real o el nombre del programa en modo protegido, y argv[1] con argv[n] es punteros a 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.
Valor devuelto
El valor devuelto de un _spawnvp o _wspawnvp sincrónico (_P_WAIT especificado para mode) es el estado de salida del nuevo proceso. El valor devuelto de un _spawnvp o _wspawnvp 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 utiliza específicamente un argumento distinto para llamar a la rutina de exit . 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 bytes.EINVAL
El argumento mode no es válido.ENOENT
El archivo o la ruta de acceso no se encuentra.ENOEXEC
El archivo especificado no es ejecutable o no tiene un formato de archivo ejecutable válido.ENOMEM
Memoria insuficiente para ejecutar el nuevo proceso.
Para obtener más información sobre éstos, y otra, códigos de retorno, vea errno, _doserrno, _sys_errlist y _sys_nerr.
Comentarios
Cada una de estas funciones crea un nuevo proceso y lo ejecuta, y pasa una matriz de punteros a los argumentos de línea de comandos y utiliza la variable de entorno PATH para buscar el archivo para ejecutarse.
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 |
---|---|
_spawnvp |
<stdio.h> o <process.h> |
_wspawnvp |
<stdio.h> o <wchar.h> |
Para obtener información adicional de compatibilidad, vea Compatibilidad.
Ejemplo
Consulte el ejemplo de _spawn, _wspawn (Funciones).