我在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
我的問題是:爲什麼不是$?
取值與n
相同嗎?我也在Win32下測試了該程序,並且echo %errorlevel%
給出了與n
相同的值。謝謝!
當'系統()參與'可以只複製行爲? (一個負值正在返回,不是嗎?這是在Linux中定義的嗎?) – 2011-12-23 07:49:25
我只在'system()'中看到過這種行爲。如果我執行'./ anything'後跟'echo $?',輸出結果爲127. – wdscxsj