Freigeben über


_spawnlp, _wspawnlp

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 _spawnlp(
   int mode,
   const char *cmdname,
   const char *arg0,
   const char *arg1,
   ... const char *argn,
   NULL 
);
intptr_t _wspawnlp(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *arg0,
   const wchar_t *arg1,
   ... const wchar_t *argn,
   NULL 
);

Parameter

  • mode
    Ausführungsmodus für den aufrufenden Prozess.

  • cmdname
    Pfad der auszuführenden Datei.

  • arg0, arg1, ... argn
    Liste von Zeigern zu Argumenten. Das arg0-Argument ist normalerweise ein Zeiger auf cmdname. Die Argumente arg1 bis argn sind Zeiger auf Zeichenfolgen, die die Argumentliste neu bilden. Nach argn muss ein NULL-Zeiger stehen, mit dem das Ende der Argumentliste markiert wird.

Rückgabewert

Der Rückgabewert eines synchronen _spawnlp oder _wspawnlp (_P_WAIT angegeben für mode) ist der Beendigungsstatus des neuen Prozesses. Der Rückgabewert eines asynchronen _spawnlp oder _wspawnlp (_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 und führt diesen aus. Dabei wird jedes Befehlszeilenargument als separater Parameter übergeben und die PATH-Umgebungsvariable zum Ermitteln der auszuführenden Datei verwendet.

Diese Funktionen überprüfen ihre Parameter. Wenn entweder cmdname oder arg0 eine leere Zeichenfolge oder ein NULL-Zeiger ist, generieren diese Funktionen eine Ausnahme wegen eines ungültigen Parameters, 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

_spawnlp

<process.h>

_wspawnlp

<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