C语言获取Shell返回结果的实现方法
来源:互联网 发布:windows pcl5 编辑:程序博客网 时间:2024/05/22 11:46
投稿:jingxian 字体:[增加 减小] 类型:转载 时间:2016-07-01 我要评论
下面小编就为大家带来一篇C语言获取Shell返回结果的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Linux编程时候,如果我们需要调用shell命令或脚本通常使用system方法。如system("ls")
该方法返回值为0或-1,即成功或失败。而有的时候我们想要获取shell命令执行的结果,该怎么办呢?
我们可以将shell命令结果重定向到文件中,然后再读取这个文件,如:
system("ls>result.txt")
FILE *fp = fopen(result, "r")
当然我们也可以直接使用管道,如下面示例:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <strings.h>#include <string.h>char* shellcmd(char* cmd, char* buff, int size){ char temp[256]; FILE* fp = NULL; int offset = 0; int len; fp = popen(cmd, "r"); if(fp == NULL) { return NULL; } while(fgets(temp, sizeof(temp), fp) != NULL) { len = strlen(temp); if(offset + len < size) { strcpy(buff+offset, temp); offset += len; } else { buff[offset] = 0; break; } } if(fp != NULL) { pclose(fp); } return buff;}int main(void){ char buff[1024]; memset(buff, 0, sizeof(buff)); printf("%s", shellcmd("ls", buff, sizeof(buff))); return 0;}
注意:C语言调用shell命令是新建一个进程执行的,执行速度很慢,最好不要C、Shell混合编程。
阅读全文
0 0
- C语言获取Shell返回结果的实现方法
- Linux C 程序执行 shell 命令并获取返回结果的方法
- linux的C获取shell执行返回的结果
- Linux中用C语言执行shell命令并获取返回结果
- c程序shell脚本获取返回值的方法
- Linux C 执行shell命令并获取返回结果
- 在C语言中获取用system函数调用shell的返回值
- 在C语言中调用shell命令的实现方法
- c程序调用shell脚本获取返回值方法
- C语言函数返回值的获取
- C语言中函数如何返回处理后的结果?
- C程序中如何获取shell命令执行结果和返回值
- C语言函数返回多个值的方法
- C语言函数返回多个值的方法
- 获取时区方法(C语言实现)
- ORACLE实现存储过程返回查询结果集合的方法
- 【shell】获取函数返回值的两种方法
- Linux Shell命令的C语言实现
- 分享一个Android平台编译脚本
- AS 2.3启动APP报错Not found; no service started
- iOS指定视图圆角位置
- Qt4.8下的OpenGL以及Glut画茶壶
- c++ assert() 使用方法
- C语言获取Shell返回结果的实现方法
- Gym_100971_Triangles
- Apache Beam发布第一个稳定版本
- 多线程编程-互斥锁
- Android 进阶学习笔记
- Dlib库【9】——Surf特征点
- strdup函数
- 4814: [Cqoi2017]小Q的草稿
- CR, LF, CR/LF 回车 换行