Funkcja wait i exit

0

Z tego, co rozumiem, funkcja wait służy do tego, aby proces macierzysty zaczekał na zakończenie pierwszego procesu potomnego, a funkcja exit do zakończenia procesu. Jednak nie wiem, co oznaczają wartości podane w nawiasach tych funkcji i jakie mają one znaczenie, np. czym w zapisie wait(0) i exit(1) jest 0 i 1? Czy mogę napisać exit(1) i na czym będzie polegała różnica?

1

Porada na przyszłość: Jeżeli nie wiesz, co oznacza jakiś argument funkcji, czytasz dokumentację.

Średnio umiem w C/C++, ale:

  • Czytając dokumentację wait (np. http://man7.org/linux/man-pages/man2/wait.2.html) dowiadujemy się, że funkcja zwraca ID procesu, a jej argument to nie int, ale wskaźnik na int. Pod tym wskaźnikiem zapisana zostanie przyczyna zakończenia programu.
  • Czytając dokumentację exit (np. https://en.cppreference.com/w/c/program/exit) dowiadujemy się, że jako argument podaje się kod wyjściowy, przy czym zakłada się, że kod równy 0 oznacza sukces, a dowolny inny - błąd programu. To, jaka liczba oznacza jaki błąd zależy już w zupełności od programisty tworzącego program - możesz nawet używać jednego numeru, np. 1, na wszystkie możliwe błędy, ale jeżeli rozróżnia się kod wyjściowy na poszczególne błędy, warto w dokumentacji programu zamieścić, jaki kod co oznacza.

1 użytkowników online, w tym zalogowanych: 0, gości: 1