Jaki jest status wyjścia?
Status wyjścia programu, zwany także kodem powrotu, to liczba przekazywana przez program do systemu operacyjnego, skryptu lub innego procesu, który pierwotnie go wykonał po zakończeniu działania programu. Nie ma rzeczywistych reguł dotyczących znaczenia liczb używanych jako status wyjścia, chociaż wartość zero tradycyjnie oznacza, że program zakończył się normalnie, a każda wartość niezerowa oznacza, że program został nieoczekiwanie zakończony. Przypisując liczbę do statusu wyjścia, oryginalny program lub proces, który wywołał kod, może stwierdzić, czy program z powodzeniem wykonał potrzebne zadania, czy też należy podjąć inne działania.
Prawie wszystkie języki komputerowe i wiele języków skryptowych ma jakiś mechanizm lub funkcję, która może zwrócić status wyjścia. Są sytuacje, w których program może celowo zakończyć działanie w trakcie działania, używając określonego kodu błędu, aby wskazać, że coś jest nie tak, jak brakujący plik danych lub brak pamięci komputera. Programy, które nie definiują jawnie kodu statusu wyjścia, zwracają zero programowi wywołującemu, chyba że system operacyjny lub tłumacz języka zakończy program z powodu błędów.
Status wyjścia można również wykorzystać do komunikacji ze skryptem lub innym procesem poprzez przekazanie określonych wartości z powrotem, wskazujących, jakie działanie należy podjąć w następnej kolejności. Jednym z przykładów byłby skrypt, który został zaprojektowany w celu utrzymania działania programu, pomimo możliwych czasów, w których program mógłby zakończyć pracę w celu konserwacji. Ten schemat działałby ze skryptem wykonującym program, a następnie czekającym na jego zamknięcie. Programiści mogą to ustawić tak, aby program zwrócił jeden numer, co oznacza, że na stałe wychodzi i nie powinien być restartowany, a inny numer może poinstruować skrypt, aby poczekał przez pewien czas, a następnie uruchomił ponownie program; wciąż trzecia wartość może wskazywać na błąd programu i wymaga uwagi programisty.
Użycie kodu statusu wyjścia do komunikacji jest wygodne w niektórych sytuacjach ze względu na bezpieczeństwo i inne ograniczenia, które niektóre programy mają w różnych systemach operacyjnych. Istnieje wiele przypadków, w których program nie może komunikować się z procesem wywoływania lub innym programem działającym równolegle w tym samym systemie. W takich sytuacjach opcje komunikacji między programami byłyby ograniczone do złożonych schematów obejmujących pamięć współużytkowaną, połączenia gniazd sieciowych lub zapisywanie plików. Korzystając ze statusu wyjścia, można przekazywać proste informacje w bardzo prosty sposób, który nie wymaga opracowania niestandardowych ram.