C程序中如何获取shell命令执行结果和返回值
2016-10-24 18:55
681 查看
如果在C程序中调用了shell命令,那么往往希望得到输出结果以及命令执行的返回布尔值。在这里分为两步来处理:
1.使用 popen 与 pclose 来执行shell命令;
2.使用‘echo $?’来获取上一条指令执行状态,如果为0那么标识成功执行,否则标识执行出错;
代码如下:
1.使用 popen 与 pclose 来执行shell命令;
2.使用‘echo $?’来获取上一条指令执行状态,如果为0那么标识成功执行,否则标识执行出错;
代码如下:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> int main(void) { FILE *stream = NULL; char buf[1024]; int ret; memset(buf, 0, sizeof(buf)); if ((stream = popen("ifconfig", "r")) == NULL) { fprintf(stderr, "%s", strerror(errno)); return -1; } /* output the message */ while (fgets(buf, sizeof(buf), stream) != NULL) { printf("%s", buf); } if ((stream = popen("echo $?", "r")) == NULL) { fprintf(stderr, "%s", strerror(errno)); return -1; } /* output the message */ while (fgets(buf, sizeof(buf), stream) != NULL) { printf("%s", buf); } ret = atoi(buf); if (ret) printf("command excutes succeed!\n"); else printf("command excutes fail!\n"); }
相关文章推荐
- Linux C 程序执行 shell 命令并获取返回结果的方法
- 转载:C程序中如何获取命令执行的结果
- 获取python执行shell命令的结果
- java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值
- 服务端用system()执行shell命令获取执行结果(排除signal影响)
- Linux中用C语言执行shell命令并获取返回结果
- java 执行shell命令,并获取执行结果
- shell 执行一个程序多次获取预期结果
- java调用shell命令并获取执行结果
- 使用Java代码执行系统命令/shell命令, 并获取输出结果
- Linux C 执行shell命令并获取返回结果
- java调用shell命令并获取执行结果
- 如何获取shell函数的返回值及shell命令的返回值?
- linux程序里面 获取shell命令结果
- Qt如何执行bash命令,并获取返回结果
- python调用其它脚本:pig,python,shell等等 (如何获取pig脚本执行的返回值)
- 程序内执行shell命令自动获取局域网内所有在线IP和开放端口(Linux)
- python调用其它脚本:pig,python,shell等等 (如何获取pig脚本执行的返回值)
- java执行shell命令或者脚本,返回结果到程序
- Java开发之调用shell命令并获取执行结果(Mac)