【发布时间】:2015-12-15 18:00:48
【问题描述】:
我想使用命令行 (CMD.exe) 来执行一个函数(如 "DIR" ; CD 等)并读出结果。我用 POPEN 尝试过,但问题是,我只能执行 1 个订单。 类似的东西
cd ..
dir
我会这样做。
这是我的“假代码”,我想怎么做
Get Order from USER
Execute in Commandline
Print out the Result
Jump to start
我就是这样做的。 Objekt "S" 是我的套接字类的一部分。
while (1)
{
//GET THE ORDER
std::string r = s->ReceiveLine();
if (r.empty()) break;
cout<<r<<endl;
//EXECUTE THE ORDER
FILE *fp = popen(r.c_str(),"r");
char buf[2560];
//READ THE RESULT AND SEND TO USER
while (fgets(buf, 2560, fp))
{
s->SendBytes(buf);
}
s->SendLine("123++END");
}
希望你能理解我的问题,我的英文不太好:$
谢谢!
【问题讨论】:
-
然后将所有内容放入 .cmd 或 .bat 文件中,然后执行。
-
对我的程序不起作用。