Przejdź do zawartości

Linux/Więcej o fork i exec

Z Wikibooks, biblioteki wolnych podręczników.

Fork() i Exec()

[edytuj]

Podane funkcje pochodzą z standardowej biblioteki c/c++, patrz: Biblioteka standardowa języka C


Fork

[edytuj]

Funkcja fork() służy do tworzenia nowego procesu będącego kopią procesu wywołującego daną funkcję (ang. parent - rodzic). Funkcja dana zwraca pid (process id) dziecka (procesu potomnego) rodzicowi, a w procesie potomnym zwraca 0. Pomnażanie procesów (kopii) służy głównie do poprawiania wydajności programów. Patrz: Wielowątkowość. Używanie funkcji fork() może być korzystne dla wydajności programu, lecz może być także źródłem zagrożeń. Patrz Fork-bomba Niekontrolowane rozmnażanie się procesów może całkowicie spowolnić jego działanie, "zawiesić" na długi czas i sprawić, że będzie niedostępny.

Exec

[edytuj]

Funkcja Exec() i jej pochodne służy do uruchomienia procesu potomnego. W przeciwieństwie do funkcji system(), funkcja ta uruchamia proces kopię dla potrzeb danej funkcji, który po zakończeniu działania funkcji ginie. W ten sposób funkcja exec() nie powoduje zatrzymania programu na czas wywołania tejże funkcji.

Źródła:

[edytuj]

Biblioteka libc: [1] Fork(): [2] Exec(): [3]

Czas edycji i autor: --Xgrzyb90 10:48, 28 sie 2009 (CEST)