system() コマンドからの stdout の効果的なキャプチャ
system() 関数を利用して外部アプリケーション (「ls」など) を起動する場合」の場合、さらなる処理のためにその出力をリアルタイムでキャプチャすることが望ましい場合があります。 C/C でこれを実現するには、次の最適なアプローチを検討してください。
popen() 関数と pclose() 関数は、popen マニュアルに記載されているように、外部コマンドから stdout/stderr をキャプチャするための堅牢なメカニズムを提供します。コード例を次に示します。
#include <stdio.h> FILE *fp; char buffer[1024]; fp = popen("ls", "r"); while (fgets(buffer, sizeof(buffer), fp) != NULL) { // Process the stdout line } pclose(fp);
このコード スニペットは、「ls」コマンドへのパイプを開き、出力の各行を反復処理して、さらなる処理のために送信します。外部コマンドが完了すると、pclose() はパイプを閉じてリソースを解放します。
この手法を採用すると、外部アプリケーションから stdout を効果的にキャプチャでき、C/C コードとのシームレスな統合が保証されます。
以上がC/C の `system()` コマンドから stdout を効果的にキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。