linux 下如何编写c程序,获得命令行结果?

如题,比如在linux下的ifconfig,运行编写的c程序,如何获得结果,之后在终端printf输出结果?貌似是用管道重定向,不太懂,希望大神求解~~能给个程序的例子最... 如题,比如在linux下的ifconfig,运行编写的c程序,如何获得结果,之后在终端printf输出结果?貌似是用管道重定向,不太懂,希望大神求解~~能给个程序的例子最好了,命令就拿ifconfig吧~~~谢谢啦 展开
 我来答
shinf12
推荐于2016-10-03 · 超过12用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:23.9万
展开全部

void executeShell(const char *shell){

FILE *stream; 

char buf[1024];

memset( buf, '\0', sizeof(buf) );//初始化buf,以免后面写如乱码到文件中

stream = popen( shell , "r" );   //将命令的输出 通过管道读取(“r”参数)到FILE* stream

fread( buf, sizeof(char), sizeof(buf), stream); //将刚刚FILE* stream的数据流读取到buf中

pclose( stream ); 

printf("%s \n",buf);//打印输出结果

}

百度网友3a9d545
2012-03-23 · 超过22用户采纳过TA的回答
知道答主
回答量:154
采纳率:100%
帮助的人:65.2万
展开全部
ifconfig的默认输出就是终端输出,只有你不需要终端输出的时候才会使用重定向,一般的重定向是文件重定向,两个符号,>>(append模式0) , >(一般模式)。管道是 | 符号,和重定向不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不用我的名字了
2012-03-23 · TA获得超过363个赞
知道答主
回答量:204
采纳率:100%
帮助的人:152万
展开全部
直接在C文件里调用system就可以了。
#include <stdio.h>
int main(int argc, char *argv[])
{
system("ifconfig");
return 0;
}
编译执行就能在终端中输出ifconfig命令的结果。
man system看看。

shell脚本才会用到重定向。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d111d87
推荐于2016-09-22 · TA获得超过340个赞
知道小有建树答主
回答量:130
采纳率:100%
帮助的人:94.1万
展开全部
你要获取什么,ifconfig命令是获取当前主机的IP地址等信息,可以直接在终端命令行输入,例如
akaedu@akaedu-desktop:~/jwy/baidu/str$ ifconfig
eth0 Link encap:以太网 硬件地址 00:1f:d0:c4:91:92
inet 地址:192.168.1.155 广播:192.168.1.255 掩码:255.255.255.0
inet6 地址: fe80::21f:d0ff:fec4:9192/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:37932 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:23506 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:49613893 (49.6 MB) 发送字节:2359948 (2.3 MB)
中断:26 基本地址:0x4000

lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 跃点数:1
接收数据包:116 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:116 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:9772 (9.7 KB) 发送字节:9772 (9.7 KB)
追问
用c实现一个程序,运行这个程序输出ifconfig结果
追答
你要的函数功能实现起来有点麻烦,下面的链接代码可以实现部分显示,我运行过,最下面是运行截图,不知道是不是你要的代码,有500多行。
链接:http://hi.baidu.com/zengzhaonong/blog/item/30836c8d9329cb19b31bba8f.html

截图如下:
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式