Provided by: manpages-pl-dev_20051117-1_all bug

NAZWA

       fork - utworzenie procesu potomnego

SKŁADNIA

       #include <sys/types.h>
       #include <unistd.h>

       pid_t fork(void);

OPIS

       fork  tworzy  proces  potomny, który różni się od procesu macierzystego
       jedynie swoimi numerami PID i PPID oraz tym, że w rzeczywistości użycie
       przez  niego  zasobów  jest ustawione na 0. Blokady plików i oczekujące
       sygnały nie są dziedziczone.

       Pod Linuksem fork funkcja jest zaimplementowana  za  pomocą  kopiowania
       stron  pamięci  przy zapisie, więc jedynymi mankamentami fork są czas i
       pamięć  wymagane  do  powielenia  tablic  stron  rodzica  i  utworzenia
       unikalnej struktury zadania dla potomka.

WARTOŚĆ ZWRACANA

       Po  pomyślnym  zakończeniu,  w  procesie macierzystym zwracany jest PID
       procesu potomnego, a w procesie potomnym zwracane jest  0.  Po  błędzie
       zwracane  jest  -1  w  kontekście  rodzica,  nie jest tworzony procesie
       potomny i odpowiednio ustawiane jest errno.

BŁĘDY

       EAGAIN fork  nie  mógł  zaalokować  ilości  pamięci  wystarczającej  do
              skopiowania  tablic  stron  rodzica  i dla struktury zadania dla
              potomka.

       ENOMEM fork nie potrafił zaalokować niezbędnych struktur jądra z powodu
              niedostatecznej ilości pamięci.

ZGODNE Z

       Funkcja fork jest zgodna z SVr4, SVID, POSIX, X/OPEN, BSD 4.3.

ZOBACZ TAKŻE

       clone(2), execve(2), vfork(2), wait(2)