溫馨提示×

c++ exec輸出如何重定向

c++
小樊
108
2024-12-01 15:58:14
欄目: 編程語言

在C++中,你可以使用popen()pclose()函數來重定向exec()函數的輸出

#include <iostream>
#include <cstdio>
#include <unistd.h>
#include <sys/wait.h>

int main() {
    // 打開一個文件用于存儲輸出結果
    FILE *fp = popen("your_command_here", "r");
    if (fp == nullptr) {
        std::cerr << "Failed to run command" << std::endl;
        return 1;
    }

    // 從文件指針中讀取輸出結果
    char buffer[128];
    while (fgets(buffer, sizeof(buffer), fp) != nullptr) {
        std::cout << buffer;
    }

    // 關閉文件指針并等待命令執行完成
    pclose(fp);
    int status = WEXITSTATUS(waitpid(0, nullptr, 0));
    if (status != 0) {
        std::cerr << "Command exited with status " << status << std::endl;
    }

    return 0;
}

在這個示例中,你需要將"your_command_here"替換為你想要執行的命令。popen()函數會創建一個管道,將命令的輸出重定向到文件指針fp。然后你可以使用fgets()函數從文件指針中讀取輸出結果,并將其打印到標準輸出。最后,使用pclose()函數關閉文件指針,并使用waitpid()函數等待命令執行完成。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女