_spawnv
, _wspawnv
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 en aplicaciones de la Plataforma universal de Windows.
Sintaxis
intptr_t _spawnv(
int mode,
const char *cmdname,
const char *const *argv
);
intptr_t _wspawnv(
int mode,
const wchar_t *cmdname,
const wchar_t *const *argv
);
Parámetros
mode
Modo de ejecución para el proceso de llamada.
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 de acceso en modo real o al nombre del programa en modo protegido, y argv[1]
a través argv[n]
de 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.
Valor devuelto
El valor devuelto de un _spawnv
o _wspawnv
asincrónico (_P_WAIT
especificado para mode
) es el estado de salida del nuevo proceso. El valor devuelto de un _spawnv
o _wspawnv
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 una salida anómala con una anulación o una interrupción. Un valor devuelto de -1 indica un error (el nuevo proceso no se inicia). En este caso, errno
se establece en uno de los valores siguientes.
Valor | Descripción |
---|---|
E2BIG |
La lista de argumentos supera los 1024 bytes. |
EINVAL |
El argumentomode no es válido. |
ENOENT |
No se encuentra el archivo o la ruta de acceso. |
ENOEXEC |
El archivo especificado no es ejecutable o tiene un formato de archivo ejecutable no válido. |
ENOMEM |
Memoria insuficiente para ejecutar el nuevo proceso. |
Para obtener más información sobre estos y otros códigos de retorno, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
Cada una de estas funciones crea y ejecuta un proceso nuevo, y pasa una matriz de punteros a los argumentos de la línea de comandos.
Estas funciones validan sus parámetros. Si o cmdname
argv
es un puntero nulo, o si argv
apunta 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.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
_spawnv |
<stdio.h> o <process.h> |
_wspawnv |
<stdio.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
Vea el ejemplo de , _spawn
_wspawn
functions.
Consulte también
Control de procesos y entornos
Funciones _spawn
, _wspawn
abort
atexit
Funciones _exec
, _wexec
exit
, , _Exit
, _exit
_flushall
_getmbcp
_onexit
, _onexit_m
_setmbcp
system
, _wsystem