int fork(void)
EAGAIN
- błąd alokacji wystarczającej ilości pamięci na skopiowanie stron rodzica i zaalokowanie struktury zadańENOMEM
- nie można zaalokować niezbędnych struktur jądra z powodu braku pamięciW procesie macierzystym funkcja zwraca identyfikator (pid) procesu potomnego (wartość większą od 1)
W procesie potomnym wartość 0
int getpid(void)
int getppid(void)
pid aktualnego procesu
pid rodzica aktualnego procesu
void exit(int status)
status
- numer statusu do przekazania int wait(int *status)
int waitpid(int pid, int *status, int options)
status
- status zakończenia procesu (w przypadku zakończenia w sposób normalny) lub numer sygnału w przypadku zabicia potomka lub wartość NULL, w przypadku gdy informacja o stanie zakończenia procesu nie jest istotnapid
- identyfikator potomka, na którego zakończenie czeka proces macierzysty
options
WNOHANG
oznacza natychmiastowe zakończenie jeśli potomek się nie zakończył.WUNTRACED
oznacza zakończenie także dla procesów potomnych, które się zatrzymały, a których status jeszcze nie został zgłoszony.ECHILD
- jeśli proces o zadanym identyfikatorze pid nie istnieje lub nie jest potomkiem procesu wywołującego. (Może się to zdarzyć również w przypadku potomka, który ustawił akcję obsługi sygnału SIGCHLD na SIG_IGN)EINVAL
- jeśli argument options jest niepoprawny.EINTR
- jeśli opcja WNOHANG nie była ustawiona, a został przechwycony niezablokowany sygnał lub SIGCHLD.identyfikator procesu potomnego, który się zakończył
0 jeśli użyto opcji WNOHANG, a nie było dostępnego żadnego potomka
int execl ( char * path, char * arg0, ..., char * argn, char * null )
path
- pełna nazwa ścieżkowa z programemarg0 ...argn
- nazwa i argumenty programu który ma być wywołany0 lub -1