【发布时间】:2013-09-02 13:16:53
【问题描述】:
我有这个想法尝试在另一个程序的条件语句中使用 system 的返回值,这是我想出的:
第一个程序:
#include <stdio.h>
#include <stdlib.h>
main(void)
{
char ans;
scanf("%c" , &ans);
if(ans == 'y' || ans == 'Y')
return 1;
else
return 0;
}
第二个程序(调用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");
}
但这不起作用,因为当我使用 printf 查看系统的返回值时程序总是返回 you answered no 如果是 256 当程序应该返回 1 时(0 工作正常)当我替换return 1 和 return 2 我得到了 510 。
我不知道他们发生了什么,但它让我想起return 1 的情况下一个字节中可能的组合数量以及return 2 中9位的组合数量,就像程序正在做(255 << (i - 1)) + 1 一样i 是返回值,i > 0。
有人知道那里到底发生了什么吗?
【问题讨论】:
标签: c function return-value