ホームページ >バックエンド開発 >C++ >C/C で `system()` コマンドから stdout をシームレスにキャプチャするにはどうすればよいですか?

C/C で `system()` コマンドから stdout をシームレスにキャプチャするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-03 15:09:10465ブラウズ

How Can I Seamlessly Capture stdout from a `system()` Command in C/C  ?

system() コマンドからの stdout のシームレスなキャプチャ

system() コマンドを使用して起動された外部アプリケーションの stdout 出力のキャプチャは必須です多くのアプリケーションに対応します。 C/C では、このタスクを達成するためのアプローチがいくつかあります。

最適な方法の 1 つは、popen() 関数と pclose() 関数を活用することです。

#include <stdio.h>

int main() {
    FILE *fp;

    fp = popen("ls", "r");
    // Capture output and process accordingly
    pclose(fp);

    return 0;
}

popen() を使用すると、指定したコマンドの標準出力へのパイプを開くことができます。 pclose() 関数はパイプを閉じてコマンドが完了するのを待ち、終了ステータスを返します。

以上がC/C で `system()` コマンドから stdout をシームレスにキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。