我想在c语言中找到mount命令传递给系统函数的返回值我该怎么做
例如:
printf("return val = %d",WEXITSTATUS(system(mount /dev/sda /media/mmcblk0)));
但每次给我255值
任何人都可以帮助我如何找到返回代码触发我的mount命令
或任何其他解决方案
注意:我已正确包含头文件
谢谢* 强文 *
答案 0 :(得分:1)
该命令的返回值位于返回值的高8位。因此,您将返回值按位移位8。
#include <stdio.h>
int main()
{
int ret;
ret = system("mount /dev/sda /media/mmcblk0");
fprintf(stdout, "system ret:[%d]\n", (((ret)>>8) & 0xFF));
}
WEXITSTATUS
是一个宏,就是它如上所述。如果您的返回值为255,则该命令可能无法正常执行。正如其他人所提到的那样,可能是因为权限。
因此,如果system()
返回-1,那么如果使用上面显示的位移,则返回码为255.