首頁 > 後端開發 > C++ > 如何使用'popen”在 C/C 中捕獲即時系統命令輸出?

如何使用'popen”在 C/C 中捕獲即時系統命令輸出?

Linda Hamilton
發布: 2024-12-05 14:43:15
原創
570 人瀏覽過

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

使用popen 捕獲系統輸出

問題:

如何有效捕捉真實使用system () 呼叫的系統指令的時間輸出,例如system("ls"),以便進一步處理C/C ?

答案:

popen 函數提供了一種捕獲系統命令輸出的有效方法。其語法為:

#include <stdio.h>

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

int pclose(FILE *stream);
登入後複製
  • command:指定要執行的系統指令。
  • type:表示開啟流的模式。通常,使用“r”進行讀取(stdout)或“w”進行寫入(stdin)。

進程:

  1. 開啟用於讀取指令輸出的流,使用:
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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板