Procedury kontroli środowiska
Procedury sterowania procesami umożliwiają uruchamianie, zatrzymywanie i zarządzanie procesami z poziomu programu. Użyj procedur kontroli środowiska, aby uzyskać i zmienić informacje o środowisku systemu operacyjnego.
Funkcje sterowania procesami i środowiskiem
Procedura | Używanie |
---|---|
abort |
Przerywanie procesu bez opróżniania lub wywoływania funkcji zarejestrowanych przez atexit i _onexit |
assert |
Testowanie błędu logiki |
_ASSERT , _ASSERTE makra |
Podobnie jak assert w systemie , ale dostępne tylko w wersjach debugowania bibliotek czasu wykonywania |
atexit |
Planowanie procedur wykonywania po zakończeniu programu |
_beginthread , _beginthreadex |
Tworzenie nowego wątku w procesie systemu operacyjnego Windows |
_cexit |
Wykonywanie exit procedur zakończenia (takich jak opróżnianie), a następnie powrót kontroli do programu wywołującego bez przerywania procesu |
_c_exit |
Wykonywanie _exit procedur kończenia, a następnie zwracanie kontroli do programu wywołującego bez przerywania procesu |
_cwait |
Poczekaj na zakończenie innego procesu |
_endthread , _endthreadex |
Kończenie wątku systemu operacyjnego Windows |
_execl , _wexecl |
Wykonaj nowy proces z listą argumentów |
_execle , _wexecle |
Wykonaj nowy proces z listą argumentów i danym środowiskiem |
_execlp , _wexeclp |
Wykonywanie nowego procesu przy użyciu PATH zmiennej i listy argumentów |
_execlpe , _wexeclpe |
Wykonywanie nowego procesu przy użyciu PATH zmiennej, danego środowiska i listy argumentów |
_execv , _wexecv |
Wykonywanie nowego procesu z tablicą argumentów |
_execve , _wexecve |
Wykonaj nowy proces z tablicą argumentów i danym środowiskiem |
_execvp , _wexecvp |
Wykonywanie nowego procesu przy użyciu PATH zmiennej i tablicy argumentów |
_execvpe , _wexecvpe |
Wykonywanie nowego procesu przy użyciu PATH zmiennej, danego środowiska i tablicy argumentów |
exit |
Wywoływanie funkcji zarejestrowanych przez atexit i _onexit , opróżnianie wszystkich, zamykanie wszystkich otwartych plików i kończenie procesu |
_exit |
Zakończ proces natychmiast bez wywoływania atexit lub _onexit opróżniania |
getenv , , _wgetenv , , getenv_s _wgetenv_s |
Pobieranie wartości zmiennej środowiskowej |
_getpid |
Pobieranie numeru identyfikatora procesu |
longjmp |
Przywracanie zapisanego środowiska stosu; użyj go, aby wykonać nielokalny goto |
_onexit |
Planowanie procedur wykonywania po zakończeniu programu; używanie w celu zachowania zgodności z programem Microsoft C/C++ w wersji 7.0 lub starszej |
_pclose |
Poczekaj na nowy procesor poleceń i zamknij strumień na skojarzonym potoku |
perror , _wperror |
Komunikat o błędzie drukowania |
_pipe |
Tworzenie potoku do odczytu i zapisu |
_popen , _wpopen |
Tworzenie potoku i wykonywanie polecenia |
_putenv , , _wputenv , , _putenv_s _wputenv_s |
Dodawanie lub zmienianie wartości zmiennej środowiskowej |
raise |
Wysyłanie sygnału do procesu wywoływania |
setjmp |
Zapisz środowisko stosu; użyj polecenia , aby wykonać nielokacyjną goto |
signal |
Sygnał przerwania obsługi |
_spawnl , _wspawnl |
Tworzenie i wykonywanie nowego procesu z określoną listą argumentów |
_spawnle , _wspawnle |
Tworzenie i wykonywanie nowego procesu z określoną listą argumentów i środowiskiem |
_spawnlp , _wspawnlp |
Tworzenie i wykonywanie nowego procesu przy użyciu PATH zmiennej i określonej listy argumentów |
_spawnlpe , _wspawnlpe |
Tworzenie i wykonywanie nowego procesu przy użyciu PATH zmiennej, określonego środowiska i listy argumentów |
_spawnv , _wspawnv |
Tworzenie i wykonywanie nowego procesu z określoną tablicą argumentów |
_spawnve , _wspawnve |
Tworzenie i wykonywanie nowego procesu przy użyciu określonego środowiska i tablicy argumentów |
_spawnvp , _wspawnvp |
Tworzenie i wykonywanie nowego procesu przy użyciu PATH zmiennej i określonej tablicy argumentów |
_spawnvpe , _wspawnvpe |
Tworzenie i wykonywanie nowego procesu przy użyciu PATH zmiennej, określonego środowiska i tablicy argumentów |
system , _wsystem |
Wykonywanie polecenia systemu operacyjnego |
W systemie operacyjnym Windows proces zduplikowany jest odpowiednikiem procesu tarła. Dowolny proces może służyć _cwait
do oczekiwania na dowolny inny proces, dla którego jest znany identyfikator procesu.
Różnica między _exec
rodzinami i _spawn
polega na tym, że _spawn
funkcja może zwrócić kontrolę z nowego procesu do procesu wywołującego. _spawn
W funkcji zarówno proces wywołujący, jak i nowy proces są obecne w pamięci, chyba że _P_OVERLAY
zostanie określony. _exec
W funkcji nowy proces nakłada proces wywołujący, więc kontrolka nie może powrócić do procesu wywołującego, chyba że wystąpi błąd podczas próby rozpoczęcia wykonywania nowego procesu.
Różnice między funkcjami w _exec
rodzinach i _spawn
obejmują metodę lokalizowania pliku do wykonania jako nowy proces, formularz, w którym argumenty są przekazywane do nowego procesu, oraz metodę ustawiania środowiska, jak pokazano w poniższej tabeli. Użyj funkcji, która przekazuje listę argumentów, gdy liczba argumentów jest stała lub jest znana w czasie kompilacji. Użyj funkcji, która przekazuje wskaźnik do tablicy zawierającej argumenty, gdy liczba argumentów ma zostać określona w czasie wykonywania. Informacje przedstawione w poniższej tabeli dotyczą również szerokich _spawn
odpowiedników funkcji i _exec
.
_spawn
i _exec
rodziny funkcji
Funkcje | Lokalizowanie pliku przy użyciu PATH zmiennej |
Konwencja przekazywania argumentów | Ustawienia środowiska |
---|---|---|---|
_execl , _spawnl |
Nie. | List | Dziedziczony z procesu wywoływania |
_execle , _spawnle |
Nie. | List | Wskaźnik do tabeli środowiska dla nowego procesu przekazanego jako ostatni argument |
_execlp , _spawnlp |
Tak | List | Dziedziczony z procesu wywoływania |
_execvpe , _spawnvpe |
Tak | Tablica | Wskaźnik do tabeli środowiska dla nowego procesu przekazanego jako ostatni argument |
_execlpe , _spawnlpe |
Tak | List | Wskaźnik do tabeli środowiska dla nowego procesu przekazanego jako ostatni argument |
_execv , _spawnv |
Nie. | Tablica | Dziedziczony z procesu wywoływania |
_execve , _spawnve |
Nie. | Tablica | Wskaźnik do tabeli środowiska dla nowego procesu przekazanego jako ostatni argument |
_execvp , _spawnvp |
Tak | Tablica | Dziedziczony z procesu wywoływania |
Zobacz też
Procedury czasu wykonywania języka Universal C według kategorii