Как я могу получить то, что вернула моя основная функция?


в программе на C если мы хотим дать некоторый вход от терминала, то мы можем дать его:

int main(int argc, char *argv[])

таким же образом, если мы хотим получить возвращаемое значение

5 61

5 ответов:

большинство оболочек хранят код выхода предыдущей команды запуска в $? Так что вы можете хранить и отображать его.

$ ./a.out
$ echo $?     # note - after this command $? contains the exit code of echo!

или

$ ./a.out
$ exit_code=$?    # save the exit code in another shell variable.

обратите внимание, что под linux, хотя вы возвращаете int, как правило, безопасны только значения менее 126. Более высокие значения зарезервированы для записи других ошибок, которые могут возникнуть при попытке выполнить команду или записать, какой сигнал, если таковой имеется, прервал вашу программу.

ваша оболочка, вероятно, имеет специальную переменную $?, который содержит последнее возвращенное значение программы. Итак, вскоре после завершения программы вы можете запустить:

echo $?

чтобы увидеть возвращаемое значение.

в DOS/Windows, вы можете использовать errorlevel в пакетном файле

executable optional arguments
if errorlevel 4 goto LABEL4
if errorlevel 3 goto LABEL3
if errorlevel 2 goto LABEL2
if errorlevel 1 goto LABEL1
:SUCCESS
echo SUCCESS; errorlevel 0
goto :eof
:LABEL1
echo FAILURE; errorlevel 1
goto :eof
:LABEL2
echo FAILURE; errorlevel 2
goto :eof
REM ...

просто не забудьте проверить от самого большого до самого низкого, потому что if errorlevel 42 действительно означает "если errorlevel 42 или больше"

суммирование комментариев и фрагментов, чтобы они были в одном месте.

программа C всегда имеет код, который программа может решить для себя, если она завершается нормально, возвращая значение из main функция или путем вызова

вы можете получить значения выхода с помощью команды basic linux command Эхо $? Коды ошибок являются стандартными, и подробности объясняются в этом ссылке

общие коды

**

0 - успех

1 - общие ошибки

126 - выдача разрешения

127-Незаконное команду

128-недопустимые Аргументы и фатальные ошибки

255-из диапазон**