मैं लिनक्स के तहत इस छोटे से कार्यक्रम का परीक्षण कर रहा हूँ:
// 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
के समान मान देता है। धन्यवाद!
देखने और आप केवल व्यवहार को पुनः सकता है जब 'प्रणाली()' शामिल है? (एक ऋणात्मक मूल्य वापस किया जा रहा है, है ना? क्या यह लिनक्स में परिभाषित है?) –
मैंने केवल इस व्यवहार को 'सिस्टम() 'के साथ देखा है। अगर मैं 'echo $?' के बाद '।/Anything' निष्पादित करता हूं, तो आउटपुट 127 होगा। – wdscxsj