Я тестирую эту крошечную программу под Linux:
// 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
My вопрос: почему $?
не принимает то же значение, что и n
? Я также тестировал программу под Win32, и echo% errorlevel%
дает то же значение, что и n
. Спасибо!