Freigeben über


_spawnvpe, _wspawnvpe

Erstellt einen neuen Prozess und führt ihn aus.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.

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 
);

Parameter

  • mode
    Ausführungsmodus für einen aufrufenden Prozess

  • cmdname
    Pfad der auszuführenden Datei

  • argv
    Array von Zeigern zu Argumenten. Das argv[0]-Argument ist gewöhnlich ein Zeiger auf einen Pfad im Echtzeitmodus oder auf den Programmnamen im geschützten Modus und argv[1] bis argv[n] sind Zeiger auf die Zeichenfolgen, die die neue Argumentliste bilden. Das Argument argv[n +1] muss ein NULL-Zeiger sein, um das Ende der Argumentliste zu markieren.

  • envp
    Array von Zeigern zu Umgebungseinstellungen

Rückgabewert

Der Rückgabewert eines synchronen _spawnvpe oder _wspawnvpe (_P_WAIT angegeben für mode) ist der Beendigungsstatus des neuen Prozesses. Der Rückgabewert eines asynchronen _spawnvpe oder _wspawnvpe (_P_NOWAIT oder _P_NOWAITO angegeben für mode) ist das Prozesshandle. Der Beendigungsstatus ist 0, wenn der Prozess ordnungsgemäß beendet wurde. Sie können den Beendigungsstatus auf einen Wert ungleich 0 einstellen, wenn der gestartete Prozess speziell die exit-Routine mit einem Argument ungleich 0 aufruft. Wenn der neue Prozess nicht explizit einen positiven Beendigungsstatus eingestellt hat, weist ein positiver Beendigungsstatus auf eine abnormale Beendigung mit einem Abbruch oder einer Unterbrechung hin. Ein Rückgabewert von - 1 gibt an, dass ein Fehler vorliegt (der neue Prozess wird nicht gestartet). In diesem Fall wird errno auf einen der folgenden Werte festgelegt:

  • E2BIG
    Argumentliste umfasst mehr als 1024 Byte

  • EINVAL
    mode-Argument ist ungültig

  • ENOENT
    Datei oder Pfad nicht gefunden

  • ENOEXEC
    Die angegebene Datei ist nicht ausführbar oder hat ein ungültiges Format für eine ausführbare Datei

  • ENOMEM
    Es ist nicht genügend Arbeitsspeicher verfügbar, um den neuen Prozess auszuführen

Weitere Informationen zu diesen und anderen Rückgabecodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.

Hinweise

Jede dieser Funktionen erstellt einen neuen Prozess, führt diesen aus und übergibt ein Array von Zeigern auf Befehlszeilenargumente und ein Array von Zeigern auf die Umgebungseinstellungen. Diese Funktionen suchen die auszuführende Datei mithilfe der PATH-Umgebungsvariable.

Diese Funktionen überprüfen ihre Parameter. Wenn cmdname oder argv ein NULL-Zeiger ist oder argv auf einen NULL-Zeiger zeigt oder argv[0] eine leere Zeichenfolge ist, wird der Handler für ungültige Parameter aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, stellen diese Funktionen errno auf EINVAL ein und geben – 1 zurück. Es wird kein neuer Prozess erzeugt.

Anforderungen

Routine

Erforderlicher Header

_spawnvpe

<stdio.h> oder <process.h>

_wspawnvpe

<stdio.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

Siehe das Beispiel in _spawn-, _wspawn-Funktionen.

.NET Framework-Entsprechung

Siehe auch

Referenz

abort

atexit

_exec- und _wexec-Funktionen

exit, _exit

_flushall

_getmbcp

_onexit, _onexit_m

_setmbcp

system, _wsystem