popen()是一个标准C库函数,用于在一个新进程中执行一个shell命令,并返回该进程的标准输出或标准输入流。它的原型如下:

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

其中,command是要执行的shell命令,mode是打开流的模式,可以是"r"(读取)或"w"(写入)。popen()函数的返回值是一个文件指针,可以像操作普通文件一样使用它进行读写操作。

下面是一个使用popen()函数的例子,它执行一个shell命令并输出结果到标准输出:

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    char buffer[1024];

    fp = popen("ls -l", "r");
    if (fp == NULL) {
        fprintf(stderr, "Failed to execute command\n");
        exit(1);
    }

    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
        printf("%s", buffer);
    }

    pclose(fp);
    return 0;
}

这个例子执行了一个"ls -l"命令,并将结果输出到标准输出。需要注意的是,在使用完popen()函数后,一定要使用pclose()函数关闭文件指针,以释放资源。

linux-popen-函数Linux下使用popen执行shell命令

原文地址: https://www.cveoy.top/t/topic/rCI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录