2

私はプログラムを書いていますが、入力/出力にはカスタム コマンドを許可するのが最善であると判断しました。構成ファイルを作成し、一連のコマンド (echo など) を定義し、system() を使用してプログラム内でこれらを呼び出しました。問題は、これらのコマンドから入力を取得する必要があることです。「read ANSWER」を使用してから getenv("ANSWER) を使用しようとしましたが、これは null 文字列を返します。これを行うための最良の方法は何ですか?

4

1 に答える 1

2

コードを提供していないので、想像力を働かせる必要があります。間違っている場合はお知らせください。あなたはこのようなことをしています:

system("command");

そして、そのコマンドによって生成された出力を読み取れるようにしたいと考えています。私が間違っている場合は、質問で使用しているコードを提供してください。

私が正しければ、popen代わりに使用したいと思います。C スタイルの I/O ストリームを開きます。読み取りまたは書き込みのいずれかを指定できます (両方を指定することはできません)。"r"読書に使いたい。完了したら、ストリームを閉じますpclose

char buf[512];
FILE *cmd = popen("command", "r");
while (fgets(buf, sizeof(buf), cmd) != 0) {
    //...
}
pclose(cmd);
于 2012-08-17T02:41:36.120 に答える