Udostępnij za pośrednictwem


_spawnve, _wspawnve

Tworzy i wykonuje nowy proces.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

intptr_t _spawnve(
   int mode,
   const char *cmdname,
   const char *const *argv,
   const char *const *envp
);
intptr_t _wspawnve(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp
);

Parametry

mode
Tryb wykonywania dla procesu wywołującego.

cmdname
Ścieżka pliku do wykonania.

argv
Tablica wskaźników do argumentów. Argument argv[0] jest zwykle wskaźnikiem do ścieżki w trybie rzeczywistym lub nazwy programu w trybie chronionym, a argv[1] przez argv[n] to wskaźniki do ciągów znaków tworzących nową listę argumentów. Argument argv[n+1] musi być wskaźnikiem NULL , aby oznaczyć koniec listy argumentów.

envp
Tablica wskaźników do ustawień środowiska.

Wartość zwracana

Wartość zwracana z synchronicznego _spawnve lub _wspawnve (_P_WAIT określonego dla mode) jest stanem zakończenia nowego procesu. Wartość zwracana z asynchronicznego _spawnve lub _wspawnve (_P_NOWAIT lub _P_NOWAITO określonego dla modeelementu ) jest dojściem procesu. Stan zakończenia to 0, jeśli proces zakończył się normalnie. Stan wyjścia można ustawić na wartość niezerową, jeśli proces zduplikowany wywołuje exit procedurę z argumentem niezerowym. Jeśli nowy proces nie ustawił jawnie pozytywnego stanu zakończenia, dodatni stan zakończenia wskazuje nietypowe wyjście z przerwania lub przerwania. Wartość zwracana -1 wskazuje błąd (nowy proces nie został uruchomiony). W tym przypadku errno parametr jest ustawiony na jedną z następujących wartości.

Wartość Opis
E2BIG Lista argumentów przekracza 1024 bajty.
EINVAL mode argument jest nieprawidłowy.
ENOENT Nie można odnaleźć pliku lub ścieżki.
ENOEXEC Określony plik nie jest wykonywalny lub ma nieprawidłowy format pliku wykonywalnego.
ENOMEM Za mało pamięci do wykonania nowego procesu.

Aby uzyskać więcej informacji na temat tych i innych kodów powrotnych, zobacz errno, _doserrno, _sys_errlisti _sys_nerr.

Uwagi

Każda z tych funkcji tworzy i wykonuje nowy proces, przekazując tablicę wskaźników do argumentów wiersza polecenia i tablicę wskaźników do ustawień środowiska.

Te funkcje weryfikują swoje parametry. Jeśli element cmdname lub argv jest wskaźnikiem o wartości null lub wskazuje argv wskaźnik o wartości null lub argv[0] jest pustym ciągiem, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, te funkcje mają wartość errno EINVALi zwracają wartość -1. Nie jest duplikowany żaden nowy proces.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Wymagania

Procedura Wymagany nagłówek
_spawnve <stdio.h> lub <process.h>
_wspawnve <stdio.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

Zobacz przykład w _spawn_wspawn temacie , functions.

Zobacz też

Kontrola procesu i środowiska
_spawn, _wspawn funkcje
abort
atexit
_exec, _wexec funkcje
exit, , _Exit_exit
_flushall
_getmbcp
_onexit, _onexit_m
_setmbcp
system, _wsystem