나는 리눅스에서이 작은 프로그램을 테스트하고 있습니다 :
// foo.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int n = system(argv[1]);
printf("%d\n", n);
return n;
}
상관없이 명령 줄에 공급 무엇
echo $?
항상 예를 들어, 0 인쇄합니다
:
$ ./foo anything
sh: anything: not found
32512
$ echo $?
0
내 질문은 왜 $?
은 n
과 같은 값을 가지고 있지 않습니까? 또한 Win32에서 프로그램을 테스트했으며 echo %errorlevel%
은 n
과 같은 값을 제공합니다. 감사!
를 참조 종료 상태로 인식하고 '시스템()'관련된 경우에만 동작을 재현 할 수 있습니까? (음의 값이 반환 되는가? 리눅스에서 정의 된 것인가?) –
나는이 동작을'system()'으로 만 보았습니다. './anything' 다음에'echo $? '를 실행하면 출력은 127이됩니다. – wdscxsj