linux c system函数调用命令,如何得到显示信息。

w_dalu 2010-06-27 03:52:16
#include <stdio.h>
#include <stdlib.h>

main()
{
char url[1024] = {0};
char command[512] = {0};
char result[2024] = {0};
strcpy(command, "ifconfig eth0");
system(command);
}


linux c system函数,返回的整形数值,如何得到待执行的命令ifconfig eth0 返回的信息,并赋给一变量。
或者有没有其他函数或方法能够得到命令显示的信息?

[root@localhost taskSplit]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr XX:A9:XX:39:44:XX
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8401087 errors:0 dropped:0 overruns:0 frame:0
TX packets:8699464 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6003800449 (5.5 GiB) TX bytes:4497202637 (4.1 GiB)
Interrupt:50 Base address:0x2000
...全文
1329 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyc369191846 2010-06-27
  • 打赏
  • 举报
回复
不是很明白哈~
w_dalu 2010-06-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jcwkyl 的回复:]

引用 1 楼 do_fork 的回复:

man popen


同意1楼,使用popen。示例代码如下:
C/C++ code

#include <stdio.h>

int main() {
FILE *pf;
char buffer[4096];

pf = popen("/sbin/ifconfig", "r");
fread(buffer……
[/Quote]

正是所需,这里高人不少,受教了。
WizardOz 2010-06-27
  • 打赏
  • 举报
回复
popen 正解
jcwKyl 2010-06-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 do_fork 的回复:]

man popen
[/Quote]

同意1楼,使用popen。示例代码如下:

#include <stdio.h>

int main() {
FILE *pf;
char buffer[4096];

pf = popen("/sbin/ifconfig", "r");
fread(buffer, sizeof(buffer), 1, pf);

printf("%s\n", buffer);

pclose(pf);
return 0;
}



popen是个非常好用的工具。比如结合popen和nc可以写一个简易的smtp客户端程序。
DCMorgan 2010-06-27
  • 打赏
  • 举报
回复
下面程序在我机器上运行时直接打印输出 ifconfig 所有信息了。
等同于在 bash 下运行 ifconfig.

int
main(void)
{
system("ifconfig");

return 0;
}

do_fork 2010-06-27
  • 打赏
  • 举报
回复
man popen

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧