您的位置:首页 > 运维架构 > Linux

Linux中调用 system的返回值

2011-06-29 15:58 169 查看
先写一个被调用的函数

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <iostream>
int main()
{
printf("Return 10./n");
return 10;
}


==================================
编译后生成一个"rt"的可执行文件
运行结果
==================================
Return 10.
==================================
再写一个调用system的程序
==================================

#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
int main()
{
pid_t          status;
int            errno = 0;
status = system("./rt");
printf("wifexited(status):%d/n", WIFEXITED(status));
printf("WEXITSTATUS(status):%d/n", WEXITSTATUS(status));
if (status == -1) {
printf("system error!");
}
if (WIFEXITED(status)) {
printf("cp exit normal![%d]/n", errno);
printf("exit staus = [%X]/n", WEXITSTATUS(status));
} else
printf("cp exit illegal![%d]/n", errno);
}


==================================
编译后运行结果
==================================
Return 10.
wifexited(status):1
WEXITSTATUS(status):10
cp exit normal![0]
exit staus = [A]
==================================
可以看到:
WEXITSTATUS(status)可以得到调用程序的返回值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: