私は、システムの戻り値を別のプログラムの条件文で使用しようという考えを持っていました。これが私が思いついたものです:
最初のプログラム:
#include <stdio.h>
#include <stdlib.h>
main(void)
{
char ans;
scanf("%c" , &ans);
if(ans == 'y' || ans == 'Y')
return 1;
else
return 0;
}
2 番目のプログラム (system() を呼び出すプログラム):
#include <stdio.h>
#include <stdlib.h>
main(void)
{
if(system("/home/M435TR0x/a.out") == 1)
printf("you answered yes\n");
else
printf("you answered no");
}
しかし、これは機能しませんでしたyou answered no
.printfを使用してシステムの戻り値を確認すると256
、プログラムが戻る必要がある場合(0は正常に動作します) 、I got1
に置き換えたときにプログラムが常に戻るためです。何が起こっているのかわかりませんが、 の場合のバイトで可能な組み合わせの数と、 の 9 ビットでの組み合わせの数を思い出します。プログラムが実行しているように 、戻り値と.return 1
return 2
510
return 1
return 2
(255 << (i - 1)) + 1
i
i > 0
そこで実際に何が起こっているか知っている人はいますか?