最近准备使用 C语言 写一个程序,但是需要用到一些已经存在的命令行工具去实现一部分的功能,例如 ifconfig 等,但是,不太想用 fork 之后用 execv 去实现,这样看上去跟 shell脚本 好像没有什么不同。特地在这里请教大家:
如何在自己写的程序中以一种优雅的方式调用一些命令?
例如,能不能利用这些工具的源码去进行封装,不过我不会……
在此先谢谢大家了~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
用system()或popen(),不知道算不算优雅,这个还是留给你自己来评判吧。
#include <stdlib.h>
#include <stdio.h>
#define SIZE 100
int main()
{
system("ifconfig eth0");
FILE *f = popen("ifconfig eth0", "r");
if (f) {
char buf[SIZE];
while (fread(buf, SIZE, 1, f)) {
printf("%s", buf);
}
pclose(f);
}
return 0;
}