私はC++アプリケーションを作成しており、システムコマンドの結果を読む必要があります。私は別の方法でこれを再書き込みしようとしてきたC++でpopenの結果を読み取る
const int MAX_BUFFER = 2048;
string cmd="ls -l";
char buffer[MAX_BUFFER];
FILE *stream = popen(cmd.c_str(), "r");
if (stream){
while (!feof(stream))
{
if (fgets(buffer, MAX_BUFFER, stream) != NULL)
{
//here is all my code
}
}
pclose(stream);
}
:ここに示したように、私はpopen()
は多かれ少なかれ使用してい
。
FILE *myfile;
std::fstream fileStream(myfile);
std::string mystring;
while(std::getline(myfile,mystring))
{
// .... Here I do what I need
}
私のコンパイラはこれを受け入れません。
popen
をC++で読むにはどうすればよいですか?
「ここにすべてのコード」とは何ですか?あなたの最初のソリューションは 'data.append(buffer);'ならば完全に動作します。 – Beta
あなたのクラッシュからコールスタックを公開できますか? – Arkadiy
あなたのエラーを示す最小**完全**プログラムを提供してください。実際のプログラムから始めて、動作するすべての行を削除し、残っているものだけを表示してください。 [Here](http://ideone.com/azOcT)は、最初のコード断片を実装した実装の例です。このテクニックの使用の詳細については、http://sscce.orgを参照してください。 –