Rechercher une page de manuel
wait4
Langue: pl
Version: 1997-06-23 (openSuse - 09/10/07)
Section: 2 (Appels système)
NAZWA
wait3, wait4 - oczekiwanie na zakoñczenie procesu (styl BSD)SK£ADNIA
#include <sys/types.h> #include <sys/time.h> #include <sys/resource.h> #include <sys/wait.h> pid_t wait3(int *status, int opcje, struct rusage *ruzycie); pid_t wait4(pid_t pid, int *status, int opcje, struct rusage *ruzycie);
OPIS
Funkcja wait3 zawiesza wykonywanie bie¿±cego procesu a¿ jego potomek nie zakoñczy dzia³ania, lub a¿ nie zostanie dostarczony sygna³, którego akcj± jest zakoñczenie bie¿±cego procesu lub wywo³anie funkcji obs³ugi sygna³u. Je¶li potomek zakoñczy³ dzia³anie przed wywo³aniem tej funkcji (tzw. "zombie" - proces duch), zakoñczy ona dzia³anie natychmiast. Wszelkie zasoby systemowe u¿ywane przez potomka s± zwalniane.Funkcja wait4 zawiesza wykonywanie bie¿±cego procesu a¿ potomek, okre¶lony przez argument pid nie zakoñczy dzia³ania, lub a¿ nie zostanie dostarczony sygna³, którego akcj± jest zakoñczenie bie¿±cego procesu lub wywo³anie funkcji obs³ugi sygna³u. Je¶li potomek okre¶lony przez pid ju¿ zakoñczy³ dzia³anie (proces duch), funkcja koñczy dzia³anie natychmiast. Wszelkie zasoby systemowe u¿ywane przez potomka s± zwalniane.
Warto¶æ pid mo¿e byæ jednym z:
- < -1
- oznacza oczekiwanie na dowolnego potomka, którego identyfikator grupy procesów jest równy modu³owi warto¶ci pid.
- -1
- co oznacza oczekiwanie na dowolny proces potomny; jest to równowa¿ne wywo³aniu wait3.
- 0
- oznacza oczekiwanie na dowolnego potomka, którego identyfikator grupy procesów jest równy identyfikatorowi procesu wo³aj±cego.
- > 0
- oznacza oczekiwanie na potomka, którego PID jest równy warto¶ci pid.
Warto¶æ argumentu opcje jest bitowym OR zera lub wiêcej spo¶ród nastêpuj±cych sta³ych:
- WNOHANG
- oznacza zwrócenie warto¶ci natychmiast w wypadku gdy nie ma potomka, na którego mo¿na by czekaæ.
- WUNTRACED
- oznacza równie¿ nieobs³ugiwanie zatrzymanych potomków oraz tych, których status nie zosta³ zg³oszony.
Je¶li status nie wynosi NULL, wait3 i wait4 zapisuj± w miejscu wskazywanym przez status informacje o stanie.
Stan ten mo¿e byæ okre¶lony za pomoc± nastêpuj±cych makr (pobieraj±cych jako argument bufor stanu (warto¶æ int), --- nie wska¼nik do tego bufora:
- WIFEXITED(status)
- jest niezerowe, gdy potomek zakoñczy³ pracê normalnie.
- WEXITSTATUS(status)
- wyra¿a ostatnich osiem znacz±cych bitów kodu powrotu zakoñczonego potomka (który móg³ byæ ustawiony jako argument funkcji exit lub jako argument instrukcji return w programie g³ównym. Makro to mo¿e byæ przetwarzane tylko je¶li WIFEXITED zwróci³o warto¶æ niezerow±.
- WIFSIGNALED(status)
- zwraca prawdê, je¶li potomek zakoñczy³ dzia³anie z powodu nieprzechwyconego sygna³u.
- WTERMSIG(status)
- zwraca numer sygna³u, który spowodowa³ zakoñczenie procesu potomnego. Makro to mo¿e byæ wyliczane tylko po zwróceniu przez WIFSIGNALED warto¶ci niezerowej.
- WIFSTOPPED(status)
- zwraca prawdê, je¶li proces potomny, który spowodowa³ wyj¶cie jest obecnie zatrzymany. Jest to mo¿liwe tylko je¶li wywo³anie wykonano z u¿yciem WUNTRACED.
- WSTOPSIG(status)
- zwraca numer sygna³u, który spowodowa³ zatrzymanie potomka. Makro to mo¿e byæ wyliczane tylko po zwróceniu przez WIFSTOPPED warto¶ci niezerowej.
Je¶li ruzycie nie jest równe NULL, zdefiniowana w <sys/resource.h> struktura struct rusage, na któr± ruzycie wskazuje, zostanie wype³niona informacjami o wykorzystywaniu zasobów. Szczegó³y znajduj± siê w getrusage(2).
WARTO¦Æ ZWRACANA
Identyfikator zakoñczonego procesu lub -1 w przypadku b³êdu (w szczególno¶ci, gdy nie istnieje proces potomny zadanego rodzaju, na który mo¿na by oczekiwaæ), lub zero je¶li u¿yto WNOHANG i nie by³ dostêpny ¿aden potomek. W ostatnich dwóch przypadkach zostanie odpowiednio ustawione errno.B£ÊDY
- ECHILD
- Nie istnieje ¿aden odpowiedni proces potomny, na który mo¿na by oczekiwaæ.
- EINTR
- Je¶li nie ustawiono WNOHANG a zosta³ przechwycony niezablokowany sygna³ lub SIGCHLD.
UWAGI
- Do³±czenie <sys/time.h> nie jest obecnie wymagane, lecz zwiêksza przeno¶no¶æ. (Faktycznie, <sys/resource.h> zawiera definje struktury rusage z polami typu struct timeval zdefiniowanego w <sys/time.h>.)
Prototyp dla tych funkcji jest dostêpny jedynie, gdy zdefiniowano _BSD_SOURCE (jawnie lub po¶rednio, nie definiuj±c _POSIX_SOURCE lub kompiluj±c z opcj± -ansi).
ZGODNE Z
SVr4, POSIX.1ZOBACZ TAK¯E
signal(2), getrusage(2), wait(2), signal(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre