Linux altında bu küçücük programı test ediyorum:
// 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;
}
olursa olsun komut hattına beslenen, ne bir
echo $?
daima örneğin 0 yazdırır
:
$ ./foo anything
sh: anything: not found
32512
$ echo $?
0
Sorum şu: Neden $?
, n
ile aynı değeri almıyor mu? Ben de Win32 altında programı test ettik ve echo %errorlevel%
, n
ile aynı değeri verir. Teşekkürler!
bkz çıkış durumu olarak kabul edilmektedir Ve 'sistemi()' söz konusu olduğunda yalnızca davranışı yeniden olabilir? (Negatif bir değer döndürülüyor, değil mi? Bu Linux'ta tanımlı mı?) –
Bu davranışı sadece sistem() ile gördüm. Eğer./Herhangi bir şeyi "echo $" ile yürütürsem, çıktı 127 olur. – wdscxsj