_spawnvpe
, _wspawnvpe
Crea ed esegue un nuovo processo.
Importante
Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).
Sintassi
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
);
Parametri
mode
Modalità di esecuzione per il processo chiamante.
cmdname
Percorso del file da eseguire.
argv
Matrice di puntatori agli argomenti. L'argomento argv[0]
è in genere un puntatore a un percorso in modalità reale o al nome del programma in modalità protetta e argv[1]
tramite argv[n]
sono puntatori alle stringhe di caratteri che formano il nuovo elenco di argomenti. L'argomento argv[n+1]
deve essere un NULL
puntatore per contrassegnare la fine dell'elenco di argomenti.
envp
Matrice di puntatori alle impostazioni d'ambiente.
Valore restituito
Il valore restituito da un oggetto sincrono _spawnvpe
o _wspawnvpe
(_P_WAIT
specificato per mode
) è lo stato di uscita del nuovo processo. Il valore restituito da un _spawnvpe
asincrono o _wspawnvpe
(_P_NOWAIT
o _P_NOWAITO
specificato per mode
) è l'handle del processo. Lo stato di uscita è 0 se il processo è terminato normalmente. È possibile impostare lo stato di uscita su un valore diverso da zero se il processo generato chiama specificatamente la routine exit
con un argomento diverso da zero. Se il nuovo processo non ha impostato in modo esplicito uno stato di uscita positivo, uno stato di uscita positivo indica un'uscita anomala con un'interruzione o un interrupt. Un valore restituito -1 indica un errore (il nuovo processo non viene avviato). In questo caso, errno
è impostato su uno dei valori indicati di seguito:
valore | Descrizione |
---|---|
E2BIG |
L'elenco di argomenti supera i 1024 byte. |
EINVAL |
L'argomentomode non è valido. |
ENOENT |
File o percorso non trovato. |
ENOEXEC |
Il file specificato non è eseguibile o ha un formato di file eseguibile non valido. |
ENOMEM |
Memoria insufficiente per eseguire il nuovo processo. |
Per altre informazioni sui codici restituiti, vedere errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Osservazioni:
Ognuna di queste funzioni crea ed esegue un nuovo processo, passando una matrice di puntatori agli argomenti della riga di comando e una matrice di puntatori alle impostazioni di ambiente. Per trovare il file da eseguire, queste funzioni usano la variabile di ambiente PATH
.
Queste funzioni convalidano i relativi parametri. cmdname
Se o argv
è un puntatore Null o se argv
punta a un puntatore Null o argv[0]
è una stringa vuota, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri . Se l'esecuzione può continuare, queste funzioni impostano errno
su EINVAL
e restituiscono -1. Nessun nuovo processo viene generato.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_spawnvpe |
<stdio.h> o <process.h> |
_wspawnvpe |
<stdio.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
Vedere l'esempio in _spawn
funzioni_wspawn
.
Vedi anche
abort
atexit
_exec
, _wexec
funzioni
exit
, _Exit
, _exit
_flushall
_getmbcp
_onexit
, _onexit_m
_setmbcp
system
, _wsystem