ホームページ > バックエンド開発 > C++ > 「popen」を使用して C/C でリアルタイム システム コマンド出力をキャプチャするにはどうすればよいですか?

「popen」を使用して C/C でリアルタイム システム コマンド出力をキャプチャするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-05 14:43:15
オリジナル
571 人が閲覧しました

How to Capture Real-time System Command Output in C/C   using `popen`?

popen を使用したシステム出力のキャプチャ

質問:

実際の出力を効果的にキャプチャする方法system("ls") など、system() を使用して呼び出されたシステム コマンドの時間出力。 C/C ?

答え:

popen 関数は、システム コマンドからの出力をキャプチャする効率的な方法を提供します。その構文は次のとおりです。

#include <stdio.h>

FILE *popen(const char *command, const char *type);

int pclose(FILE *stream);
ログイン後にコピー
  • command: 実行するシステム コマンドを指定します。
  • type: ストリームを開くモードを示します。通常、読み取り (stdout) には「r」を使用し、書き込み (stdin) には「w」を使用します。

プロセス:

  1. コマンドの出力を読み取るためのストリーム、 use:
FILE *stream = popen(command, "r");
ログイン後にコピー
  1. 他の入力ソースと同様にストリームを読み取ります:
char buffer[1024];
while (fgets(buffer, sizeof(buffer), stream) != NULL) {
    // Process each line of output
}
ログイン後にコピー
  1. 次の場合にストリームを閉じます完了:
pclose(stream);
ログイン後にコピー

例:

#include <stdio.h>

int main() {
    FILE *stream = popen("ls", "r");
    if (stream != NULL) {
        char buffer[1024];
        while (fgets(buffer, sizeof(buffer), stream) != NULL) {
            printf("%s", buffer);
        }
        pclose(stream);
    }
    return 0;
}
ログイン後にコピー

以上が「popen」を使用して C/C でリアルタイム システム コマンド出力をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート