popen用法

函数名中的 popen 是一个标准 C 库函数,用于创建一个管道并启动另一个进程来执行一个 shell 命令。popen 返回一个文件指针,可以用于读取或写入子进程的标准输入或输出流。

#include <stdio.h>

FILE *popen(const char *command, const char *mode);
int pclose(FILE *stream);
  • command:要执行的 shell 命令,可以是任何有效的 shell 命令,例如 "ls -l"

  • mode:模式,可以是 "r"(读取子进程的标准输出)或 "w"(向子进程的标准输入写入数据)。

  • 返回值:如果成功,则返回一个指向文件的指针,否则返回 NULL

  • pclose:用于关闭通过 popen 打开的流,并等待子进程结束。

示例用法

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

#include <stdio.h>

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

    // 执行 ls 命令并读取输出
    fp = popen("ls", "r");

    if (fp == NULL) {
        printf("Failed to run command\n");
        return 1;
    }

    printf("Output of ls command:\n");

    // 读取输出并打印到控制台
    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
        printf("%s", buffer);
    }

    pclose(fp);
    return 0;
}

在这个示例中,popen 用于执行 ls 命令,并通过读取输出将结果打印到控制台。最后,通过调用 pclose 来关闭文件指针并等待命令执行完毕。

作者:keep--fighting

出处:https://www.cnblogs.com/keep--fighting/p/17745756.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   ⭐⭐-fighting⭐⭐  阅读(362)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示