programing

기본 기능이 반환된 것을 받으려면 어떻게 해야 합니까?

firstcheck 2022. 7. 28. 22:16
반응형

기본 기능이 반환된 것을 받으려면 어떻게 해야 합니까?

C 프로그램에서는 단말기로부터의 입력이 필요한 경우는, 다음과 같이 지정할 수 있습니다.

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

같은 방법으로, 우리가 수익률을 얻고자 한다면main()그럼 어떻게 구할 수 있을까요?

각각main()우리는 글을 쓴다return 1또는return 0; 어떻게 알 수 있을까요?main()터미널로 돌아왔습니까?

편집: 1

나는 그것을 이해한다.echo $?우리는 수익률을 얻을 수 있다main()125(Linux의 경우) 미만의 값만 정상적으로 반환할 수 있습니다.이 값보다 큰 반환값은 에 의해 정상적으로 수신될 수 없습니다.$ variable그렇게

왜?int반환형main()왜 보관하지 않는가?short int?

편집 2

에러 코드의 의미를 어디에서 알 수 있습니까?main()125보다 큰 값을 반환합니다.

대부분의 셸은 이전 실행 명령의 종료 코드를 에 저장합니다.$?저장하거나 표시할 수 있습니다.

$ ./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 linux 、 단,int일반적으로 126 미만의 값만 안전하게 사용할 수 있습니다.큰 값은 명령을 실행하려고 할 때 발생할 수 있는 다른 오류를 기록하거나 프로그램이 종료된 신호를 기록하기 위해 예약되어 있습니다.

Windows 명령줄에서 에코 %errorlevel%사용하여 반환값을 읽습니다.

(코드) return.c

#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
    int i;

    printf("Enter a number");
    scanf("%d",&i);

   if(i==2)
        exit(1);
   if(i==3)
        exit(2);
    
   return 0;
}

산출량

상기 프로그램의 출력 return.c

당신의 셸은 아마도 특별한 변수를 가지고 있을 것이다.$?마지막으로 반환된 프로그램 값이 저장됩니다.따라서 프로그램이 종료된 직후에 다음을 실행할 수 있습니다.

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실제로는 "에러 레벨이 42 이상인 경우"를 의미합니다.

코멘트나 단편적인 내용을 정리하여 한 곳에 정리합니다.

C 프로그램에는 항상 종료 코드가 있습니다.이 코드는 정상적으로 종료된 경우 프로그램에서 값을 반환함으로써 스스로 결정할 수 있습니다.main기능 또는 호출에 의해exit기능.예를 들어 분할 장애에 의해 프로그램이 비정상적으로 종료된 경우 운영체제는 종료 코드를 결정합니다.

Unix(Posix)에서는 종료 코드는 8비트 값(0 ~255)입니다.이것은 다른 메타데이터와 조합되어 상태가 됩니다.다른 메타데이터에는 프로그램이 정상적으로 종료되었는지 여부, 신호 때문에 종료되었는지 여부, 어떤 신호가 종료되었는지에 대한 정보가 포함됩니다.자세한 내용은 wait(2) 매뉴얼페이지를 참조해 주세요.

Unix는 Unix 의 상태로 할 수 .$?특수 변수입니다.종료 코드는 8비트이며 부호 없는 정수로 취급되기 때문에 음의 값을 반환하면 -1은 255가 됩니다.마찬가지로 255보다 큰 값을 반환하면 최하위8비트만 사용됩니다.256은 0이 됩니다

:mainint 보다short ★★★★★★★★★★★★★★★★★」char왜냐하면, 그것이 결정된 지 수십 년이 지난 지금, 특히 이 시점에서, 더 작은 것으로 만드는 것은 특별한 이득이 없기 때문이다.지금 바꾸면 불필요한 합병증만 생길 거예요.

는 C를 합니다.system주의하세요.system는 셸 경유로 명령어를 실행합니다.또한 명령어에 외부에서 제공된 파일 이름이나 명령줄에서 다른 것을 지정할 경우 모든 것을 올바르게 이스케이프하지 않도록 매우 주의해야 합니다).

콜을 하여 다른 보다 할 수 .fork,execl(또는 그 바리안트 중 하나, exec(3) 매뉴얼페이지 참조) 및wait(일부러)이 기능은 강력하고 유연하지만 실수하기 쉬우므로 먼저 설명서를 읽고 몇 가지 예제 프로그램을 확인하십시오(반면, 이 내용을 배우는 것은 매우 즐겁습니다).

basic linux 명령어 echo $ 명령어로 exit 값을 얻을 수 있습니까?에러 코드는 표준이며, 상세한 것에 대하여는, 이 링크를 참조해 주세요.

일반적인 코드는

**

0 - 성공

1-일반오류

126 허가 문제

127-불법 명령어

128: 유효하지 않은 인수 및 치명적인 오류

255 - 범위를 벗어남**

언급URL : https://stackoverflow.com/questions/8626109/how-can-i-get-what-my-main-function-has-returned

반응형