Freigeben über


_spawnv, _wspawnv

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 _spawnv(
   int mode,
   const char *cmdname,
   const char *const *argv 
);
intptr_t _wspawnv(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *const *argv 
);

Parameter

  • mode
    Ausführungsmodus für den 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.

Rückgabewert

Der Rückgabewert eines synchronen _spawnv oder _wspawnv (_P_WAIT angegeben für mode) ist der Beendigungsstatus des neuen Prozesses. Der Rückgabewert eines asynchronen _spawnv oder _wspawnv (_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 ihn aus und übergibt ein Array von Zeigern auf Befehlszeilenargumente.

Diese Funktionen überprüfen ihre Parameter. Wenn cmdname oder argv ein NULL-Zeiger ist oder wenn argv auf einen NULL-Zeiger zeigt oder wenn 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

_spawnv

<stdio.h> oder <process.h>

_wspawnv

<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

Prozess- und Umgebungssteuerung

_spawn- und _wspawn-Funktionen

abort

atexit

_exec- und _wexec-Funktionen

exit, _exit

_flushall

_getmbcp

_onexit, _onexit_m

_setmbcp

system, _wsystem