使用Poco ProcessHandle发送命令获取结果异常
Using Poco ProcessHandle to send commands and get the result is getting exception
我正在尝试通过 Poco 的 ProcessHandle 发送一个简单的命令,例如 Windows 中的“dir”,并在 C++ 中从中获取结果。但它不能 return 我任何东西,我从下面的代码中得到异常(“系统异常”)。我对 ProcessHandle 有类似的用法,但它通常是关于打开一个 .exe 文件并将参数传递给它。但是现在,我只想发送一个简单的命令。下面的代码有什么问题吗?我目前正在 windows
我指的是 here
处的代码
Poco::Process::Args args;
string command = "dir";
Poco::Pipe outPipe;
Poco::ProcessHandle ph(Poco::Process::launch(command, args, 0, &outPipe, 0));
Poco::PipeInputStream istr(outPipe);
std::string s;
int c = istr.get();
while (c != -1) {
s += (char)c;
c = istr.get();
}
std::cout << "string is " << s << std::endl;
我找到了答案。看来我只需要做这样的事情:
Poco::Process::Args args;
args.push_back("/c");
args.push_back("dir");
string command = "cmd.exe";
Poco::Pipe outPipe;
Poco::ProcessHandle ph(Poco::Process::launch(command, args, 0, &outPipe, 0));
Poco::PipeInputStream istr(outPipe);
std::string s;
int c = istr.get();
while (c != -1) {
s += (char)c;
c = istr.get();
}
std::cout << "string is " << s << std::endl;
我正在尝试通过 Poco 的 ProcessHandle 发送一个简单的命令,例如 Windows 中的“dir”,并在 C++ 中从中获取结果。但它不能 return 我任何东西,我从下面的代码中得到异常(“系统异常”)。我对 ProcessHandle 有类似的用法,但它通常是关于打开一个 .exe 文件并将参数传递给它。但是现在,我只想发送一个简单的命令。下面的代码有什么问题吗?我目前正在 windows
我指的是 here
处的代码Poco::Process::Args args;
string command = "dir";
Poco::Pipe outPipe;
Poco::ProcessHandle ph(Poco::Process::launch(command, args, 0, &outPipe, 0));
Poco::PipeInputStream istr(outPipe);
std::string s;
int c = istr.get();
while (c != -1) {
s += (char)c;
c = istr.get();
}
std::cout << "string is " << s << std::endl;
我找到了答案。看来我只需要做这样的事情:
Poco::Process::Args args;
args.push_back("/c");
args.push_back("dir");
string command = "cmd.exe";
Poco::Pipe outPipe;
Poco::ProcessHandle ph(Poco::Process::launch(command, args, 0, &outPipe, 0));
Poco::PipeInputStream istr(outPipe);
std::string s;
int c = istr.get();
while (c != -1) {
s += (char)c;
c = istr.get();
}
std::cout << "string is " << s << std::endl;