わかりました、プログラム (Windows では .exe ファイル) があり、それを実行すると、いくつかの情報が出力されます... 今、別のプログラム (c++ で) を作成していて、その .exe ファイルを自動的に実行する必要があります。さらなるアクションのためにその情報を処理できるように、出力を読み取ります...
私は何をすべきか ?
わかりました、プログラム (Windows では .exe ファイル) があり、それを実行すると、いくつかの情報が出力されます... 今、別のプログラム (c++ で) を作成していて、その .exe ファイルを自動的に実行する必要があります。さらなるアクションのためにその情報を処理できるように、出力を読み取ります...
私は何をすべきか ?
Windows で or を使用popen
します (コメントごと) _popen
。|
基本的には中の背後にあるものとして機能しsome program | thing
ます。
通常、私は完全なコードを投稿することに反対していますが、今日これを文字通り書いて手元に置いているので、どうぞ。私が理解していることから、C++には置き換える優れたインターフェースがありませんがpopen
、ブーストライブラリまたはそのレイヤーに何かを持ち込む場合は解決策があります。
char[10]
私のアプリケーションでは、出力がそれほど短いことがわかっているため、使用することに注意してください。
PopenWrapper(const std::string& command) {
fd = popen(command.c_str(), "r");
if(fd == NULL) {
throw PopenException("Failed to open command: " + command);
}
}
std::string get() {
char line[10];
fgets(line, sizeof(line), fd);
return std::string(line);
}
~PopenWrapper() {
if(fd != NULL) {
pclose(fd);
}
}