检查系统功能的值

时间:2014-02-27 13:33:45

标签: c return-value

我想在c语言中找到mount命令传递给系统函数的返回值我该怎么做

例如:

printf("return val = %d",WEXITSTATUS(system(mount /dev/sda /media/mmcblk0)));

但每次给我255值

任何人都可以帮助我如何找到返回代码触发我的mount命令

或任何其他解决方案

注意:我已正确包含头文件

谢谢* 强文 *

1 个答案:

答案 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.