Jaki jest stan wyjścia?

Status wyjścia programu, zwany także kodem powrotu, to liczba, którą program przekazuje do systemu operacyjnego, skryptu lub innego procesu, który pierwotnie go wykonał, po zakończeniu działania programu. Nie ma prawdziwych reguł określających, co oznaczają liczby używane jako kod zakończenia, chociaż wartość zero tradycyjnie oznacza, że ​​program został normalnie zakończony, a każda wartość niezerowa oznacza nieoczekiwane zakończenie programu. Przypisując numer do stanu wyjścia, oryginalny program lub proces, który wywołał kod, może stwierdzić, czy program pomyślnie wykonał wymagane 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ć stan wyjścia. Istnieją 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, na przykład brak pliku danych lub brak pamięci komputera. Programy, które nie definiują jawnie kodu statusu wyjścia, zwrócą zero do programu wywołującego, chyba że system operacyjny lub interpreter języka zakończy program z powodu błędów.

Status wyjścia może być również użyty do komunikacji ze skryptem lub innym procesem poprzez przekazanie z powrotem określonych wartości, które wskazują, jakie działanie należy podjąć w następnej kolejności. Jednym z przykładów może być skrypt, który został zaprojektowany w celu utrzymania działania programu pomimo możliwych sytuacji, w których program może zostać zamknięty w celu konserwacji. Ten schemat działałby ze skryptem wykonującym program, a następnie czekającym na jego zakończenie. Programiści mogą to ustawić tak, aby program zwracał jedną liczbę, co oznacza, że ​​trwale kończy pracę i nie należy jej ponownie uruchamiać, a inna liczba może poinstruować skrypt, aby czekał przez pewien czas, a następnie ponownie uruchomił program; nadal trzecia wartość może wskazywać, że program napotkał błąd i wymaga uwagi programisty.

Użycie kodu statusu wyjścia do komunikacji jest wygodne w pewnych sytuacjach ze względu na zabezpieczenia 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łującym 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ółdzieloną, połączenia gniazd sieciowych lub zapisywanie plików. Używając statusu wyjścia, proste informacje mogą być przekazywane w bardzo prosty sposób, który nie wymaga opracowania niestandardowego frameworka.