简介
个人感觉:能结合外部系统命令或程序是很关键的,在开发中也会用到很多的库和系统提供的api接口,这样才能使我们的程序功能更加的强大,在C++中能执行CMD命令的函数,有system和popen第一个只会执行命令并不能把返回结果传递到变量上,而第二个正好是可以。
system函数
#include <iostream>
int main()
{
system("ping 127.0.0.1");
return 0;
}输出:
正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms1.system只能执行,返回的内容不能保存在变量里。
popen函数
#include <iostream>
#include <stdlib.h>
#include <stdlib.h>
using namespace std;
string cmd(const char *cmd, const int buffer)
{
char _str[buffer];
string cmd_str;
FILE *f = popen("ping 127.0.0.1", "r");
while (fgets(_str, buffer, f) != NULL)
{
cmd_str += _str;
}
return cmd_str;
}
int main()
{
cout << cmd("dir", 1024);
return 0;
}输出:
正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms1.popen返回的内容可以保存到变量里。
评论 (0)