c++中的popen函数怎么使用

c++
1103
2024/5/16 17:10:22
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++中,可以使用popen函数来创建一个新的进程,并且通过管道与其进行通信。popen函数的原型如下:

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

其中,command参数是要执行的命令,mode参数是打开文件的模式("r"表示只读模式,"w"表示只写模式)。popen函数会返回一个指向FILE类型的指针,可以使用这个指针来读取或写入子进程的输入输出。

下面是一个简单的示例,演示如何使用popen函数执行一个命令并读取其输出:

#include <iostream>
#include <stdio.h>

int main() {
    FILE* pipe = popen("ls", "r");
    if (!pipe) {
        std::cerr << "popen failed!" << std::endl;
        return 1;
    }

    char buffer[128];
    while (!feof(pipe)) {
        if (fgets(buffer, 128, pipe) != NULL) {
            std::cout << buffer;
        }
    }

    pclose(pipe);
    return 0;
}

在这个示例中,我们使用popen("ls", "r")来执行ls命令并读取其输出,然后使用fgets函数逐行读取子进程的输出,并将其打印到标准输出中。最后,我们使用pclose函数关闭管道。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 动态链接库在C++中的使用技巧