_spawnlpe
, _wspawnlpe
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 _spawnlpe(
int mode,
const char *cmdname,
const char *arg0,
const char *arg1,
... const char *argn,
NULL,
const char *const *envp
);
intptr_t _wspawnlpe(
int mode,
const wchar_t *cmdname,
const wchar_t *arg0,
const wchar_t *arg1,
... const wchar_t *argn,
NULL,
const wchar_t *const *envp
);
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 die Zeichenfolgen, welche die neue Argumentliste bilden. Nach argN
muss ein NULL
-Zeiger stehen, mit dem das Ende der Argumentliste markiert wird.
envp
Array von Zeigern zu Umgebungseinstellungen.
Rückgabewert
Der Rückgabewert eines synchronen _spawnlpe
oder _wspawnlpe
(_P_WAIT
angegeben für mode
) ist der Beendigungsstatus des neuen Prozesses. Der Rückgabewert eines asynchronen _spawnlpe
oder _wspawnlpe
(_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 die exit
-Routine speziell mit einem Argument ungleich 0 aufruft. Wenn der neue Prozess keinen positiven Beendigungsstatus explizit festgelegt hat, gibt ein positiver Beendigungsstatus eine ungewöhnliche Beendigung an, die durch einen Abbruch oder einen Interrupt verursacht wird. 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_errlist
und _sys_nerr
.errno
Hinweise
Jede dieser Funktionen erstellt einen neuen Prozess und führt diesen aus, übergibt jedes Befehlszeilenargument als separaten Parameter und übergibt außerdem 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 es sich um cmdname
eine leere Zeichenfolge oder arg0
einen NULL-Zeiger handelt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung 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 |
---|---|
_spawnlpe |
<process.h> |
_wspawnlpe |
<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