Freigeben über


_spawnlpe, _wspawnlpe

Erstellt einen neuen Prozess und führt ihn aus.

Wichtig

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

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 in der Regel ein Zeiger auf cmdname. Die Argumente arg1 von argn sind Zeiger auf Zeichenfolgen, die die Argumentliste neue 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 Endestatus auf einen Wert ungleich 0 (null) festlegen, wenn der Prozess generierte ausdrücklich ein Argument ungleich 0 (null) verwendet, um exit aufzurufen Routine. Wenn der neue Prozess nicht explizit einen positiven Endestatus fest, gibt ein positiver Endestatus einer nicht ordnungsgemäßen Beendigung an, die durch einen Abbruch oder Interrupts verursacht wird. 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
    Angegebene Datei ist keine ausführbare oder hat ein ungültiges Format der ausführbaren 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 errno, _doserrno, _sys_errlist und _sys_nerr.

Hinweise

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

Diese Funktionen überprüfen ihre Parameter. Wenn entweder cmdname oder arg0 eine leere Zeichenfolge oder ein NULL-Zeiger 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

_spawnlpe

<process.h>

_wspawnlpe

<stdio.h> oder <wchar.h>

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

Beispiel

Siehe das Beispiel in _spawn- und _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