Prozess- und Umgebungssteuerung
Verwenden Sie die Prozesssteuerungsroutinen, um Prozesse aus einem Programm heraus zu starten, zu beenden und zu verwalten. Verwenden Sie die Umgebungssteuerungsroutinen, um Informationen zur Betriebssystemumgebung abzurufen und zu ändern.
Prozess- und Umgebungssteuerungsfunktionen
Routine | Zweck |
---|---|
abort |
Bricht einen Prozess an, ohne Puffer zu leeren oder von atexit und _onexit registrierte Funktionen aufzurufen. |
assert |
Prüft auf Logikfehler. |
_ASSERT , _ASSERTE Makros |
Entspricht assert , ist aber nur in den Debugversionen der Laufzeitbibliotheken verfügbar. |
atexit |
Plant Routinen für die Ausführung bei Beendigung des Programms. |
_beginthread , _beginthreadex |
Erstellt einen neuen Thread in einem Windows-Betriebssystemprozess. |
_cexit |
Führt exit -Beendigungsverfahren aus (z.B. das Leeren der Puffer) und gibt dann die Steuerung an das aufrufende Programm zurück, ohne den Prozess zu beenden. |
_c_exit |
Führt _exit -Beendigungsverfahren aus und gibt dann die Steuerung an das aufrufende Programm zurück, ohne den Prozess zu beenden. |
_cwait |
Wartet, bis ein anderer Prozess beendet wird. |
_endthread , _endthreadex |
Beendet einen Windows-Betriebssystemthread. |
_execl , _wexecl |
Führt einen neuen Prozess mit einer Argumentliste aus. |
_execle , _wexecle |
Führt einen neuen Prozess mit einer Argumentliste und einer angegebenen Umgebung aus. |
_execlp , _wexeclp |
Führt einen neuen Prozess mit der Variablen PATH und einer Argumentliste aus. |
_execlpe , _wexeclpe |
Führt einen neuen Prozess mit der Variablen PATH , einer angegeben Umgebung und einer Argumentliste aus. |
_execv , _wexecv |
Führt einen neuen Prozess mit einem Argumentarray aus. |
_execve , _wexecve |
Führt einen neuen Prozess mit einem Argumentarray und einer angegebenen Umgebung aus. |
_execvp , _wexecvp |
Führt einen neuen Prozess mit der Variablen PATH und einem Argumentarray aus. |
_execvpe , _wexecvpe |
Führt einen neuen Prozess mit der Variablen PATH , einer angegeben Umgebung und einem Argumentarray aus. |
exit |
Ruft von atexit und _onexit registrierte Funktionen auf, leert alle Puffer, schließt alle offenen Dateien und beendet den Prozess. |
_exit |
Beendet den Prozess sofort, ohne atexit oder _onexit aufzurufen oder Puffer zu leeren. |
getenv , , _wgetenv getenv_s _wgetenv_s |
Ruft den Wert der Umgebungsvariablen ab. |
_getpid |
Ruft die Prozess-ID-Nummer ab. |
longjmp |
Stellt die gespeicherte Stapelumgebung wieder her, wird zur Ausführung eines nicht lokalen goto -Befehls verwendet. |
_onexit |
Plant Routinen für die Ausführung bei Beendigung des Programms, wird zur Kompatibilität mit Microsoft C/C++ Version 7.0 und früher verwendet. |
_pclose |
Wartet auf einen neuen Befehlsprozessor und schließt den Stream auf der zugeordneten Pipe. |
perror , _wperror |
Druckt eine Fehlermeldung. |
_pipe |
Erstellt eine Pipe zum Lesen und Schreiben. |
_popen , _wpopen |
Erstellt eine Pipe und führt einen Befehl aus. |
_putenv , , _wputenv _putenv_s _wputenv_s |
Fügt den Wert einer Umgebungsvariablen hinzu oder ändert ihn. |
raise |
Sendet ein Signal an den aufrufenden Prozess. |
setjmp |
Speichert die Stapelumgebung, wird zur Ausführung eines nicht lokalen goto -Befehls verwendet. |
signal |
Verarbeitet ein Interruptsignal. |
_spawnl , _wspawnl |
Erstellt einen neuen Prozess mit einer angegebenen Argumentliste und führt ihn aus. |
_spawnle , _wspawnle |
Erstellt einen neuen Prozess mit einer angegebenen Argumentliste und Umgebung und führt ihn aus. |
_spawnlp , _wspawnlp |
Erstellt einen neuen Prozess mit der Variablen PATH und einer angegebenen Argumentliste und führt ihn aus. |
_spawnlpe , _wspawnlpe |
Erstellt einen neuen Prozess mit der Variablen PATH , einer angegebenen Umgebung und einer Argumentliste und führt ihn aus. |
_spawnv , _wspawnv |
Erstellt einen neuen Prozess mit einem angegebenen Argumentarray und führt ihn aus. |
_spawnve , _wspawnve |
Erstellt einen neuen Prozess mit einer angegebenen Umgebung und einem Argumentarray und führt ihn aus. |
_spawnvp , _wspawnvp |
Erstellt einen neuen Prozess mit der Variablen PATH und einem angegebenen Argumentarray und führt ihn aus. |
_spawnvpe , _wspawnvpe |
Erstellt einen neuen Prozess mit der Variablen PATH , einer angegebenen Umgebung und einem Argumentarray und führt ihn aus. |
system , _wsystem |
Führt einen Betriebssystembefehl aus. |
Im Windows-Betriebssystem entspricht der erzeugte Prozess dem erzeugenden Prozess. Jeder Prozess kann _cwait
verwenden, um auf einen Prozess zu warten, dessen Prozess-ID bekannt ist.
Der Unterschied zwischen den Familien _exec
und _spawn
ist, dass eine _spawn
-Funktion die Steuerung vom neuen Prozess an den aufrufenden Prozess zurückgeben kann. In einer _spawn
-Funktion sind sowohl der aufrufende als auch der neue Prozess im Arbeitsspeicher vorhanden, sofern nicht _P_OVERLAY
angegeben ist. In einer _exec
Funktion überlagert der neue Prozess den aufrufenden Prozess, sodass die Steuerung nicht zum aufrufenden Prozess zurückkehren kann, es sei denn, ein Fehler tritt beim Versuch auf, die Ausführung des neuen Prozesses zu starten.
Die Unterschiede zwischen den Funktionen in den _exec
Und _spawn
Familien umfassen die Methode zum Auffinden der Datei, die als neuer Prozess ausgeführt werden soll, das Formular, in dem Argumente an den neuen Prozess übergeben werden, und die Methode zum Festlegen der Umgebung, wie in der folgenden Tabelle dargestellt. Verwenden Sie eine Funktion, die eine Argumentliste übergibt, wenn die Anzahl von Argumenten konstant oder zur Kompilierzeit bekannt ist. Verwenden Sie eine Funktion, die einen Zeiger auf ein Array mit den Argumenten übergibt, wenn die Anzahl von Argumenten zur Laufzeit ermittelt werden muss. Die Informationen in der folgenden Tabelle gelten auf für die Breitzeichenentsprechungen der Funktionen _spawn
und _exec
.
_spawn
und _exec
Funktionsfamilien
Funktionen | Verwenden einer PATH Variablen zum Suchen einer Datei |
Argumentübergabekonvention | Umgebungseinstellungen |
---|---|---|---|
_execl , _spawnl |
No | Liste | Geerbt vom aufrufenden Prozess |
_execle , _spawnle |
No | Liste | Zeiger auf Umgebungstabelle für neuen Prozess, der als letztes Argument übergeben wurde |
_execlp , _spawnlp |
Ja | Liste | Geerbt vom aufrufenden Prozess |
_execvpe , _spawnvpe |
Ja | Array | Zeiger auf Umgebungstabelle für neuen Prozess, der als letztes Argument übergeben wurde |
_execlpe , _spawnlpe |
Ja | Liste | Zeiger auf Umgebungstabelle für neuen Prozess, der als letztes Argument übergeben wurde |
_execv , _spawnv |
No | Array | Geerbt vom aufrufenden Prozess |
_execve , _spawnve |
No | Array | Zeiger auf Umgebungstabelle für neuen Prozess, der als letztes Argument übergeben wurde |
_execvp , _spawnvp |
Ja | Array | Geerbt vom aufrufenden Prozess |