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 im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).

Syntax

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, ... arg1argN
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 argNmuss 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 keinen positiven Beendigungsstatus explizit festgelegt hat, gibt ein positiver Beendigungsstatus einen abnormen Ausgang mit einem Abbruch oder einem Interrupt an. Ein Rückgabewert von -1 gibt einen Fehler an (der neue Prozess wird nicht gestartet). In diesem Fall wird errno auf einen der folgenden Werte festgelegt.

Wert Beschreibung
E2BIG Argumentliste umfasst mehr als 1024 Byte.
EINVAL mode -Argument ist ungültig.
ENOENT Datei oder Pfad wurde nicht gefunden.
ENOEXEC Die angegebene Datei ist nicht ausführbar oder weist ein ungültiges Dateiformat für ausführbare Dateien auf.
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, _sys_errlistund _sys_nerr.errno

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 es sich um cmdname eine leere Zeichenfolge oder arg0 einen Nullzeiger handelt, generieren diese Funktionen eine ungültige Parameter-Ausnahme, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, stellen diese Funktionen errno auf EINVALein 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

Sehen Sie sich das Beispiel in _spawn, _wspawn Funktionen an.

Siehe auch

Prozess- und Umgebungskontrolle
_spawn, _wspawn Funktionen
abort
atexit
_exec, _wexec Funktionen
exit, _Exit_exit
_flushall
_getmbcp
_onexit, _onexit_m
_setmbcp
system, _wsystem