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 Verwendung
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 Nein Liste Geerbt vom aufrufenden Prozess
_execle, _spawnle Nein 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 Nein Array Geerbt vom aufrufenden Prozess
_execve, _spawnve Nein Array Zeiger auf Umgebungstabelle für neuen Prozess, der als letztes Argument übergeben wurde
_execvp, _spawnvp Ja Array Geerbt vom aufrufenden Prozess

Siehe auch

Universelle C-Laufzeitroutinen nach Kategorie