Мне нужно определить коды выхода моей программы, написанные на Fortran 90, но я смущаюсь по пути.Коды выхода из Fortran в Linux
Я читаю и создаю файлы NetCDF, поэтому некоторые коды ошибок предоставляются библиотеками NetCDF. Чтобы передать код выхода в переменные среды Linux, я использую код exit(status)
везде, где программа завершена.
Но что-то идет не так, или, по крайней мере, я этого не понимаю. Если я получу код ошибки из NetCDF, например -49
(переменная не найдена), программа заканчивается, и полученное значение при использовании echo $?
равно 207
. Зачем?
Если я установил некоторые конкретные выходы, используя status=-1
, то значение $?
равно 255
.
Я прочитал эти коды выхода linux, зависит от оболочки, некоторые из них зарезервированы, есть некоторые вызванные системные ошибки.
Я видел, что 255 означает «Выход из состояния вне диапазона» (выход принимает только целые аргументы в диапазоне от 0 до 255). Но тогда, откуда это получается? – cardogar