首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用C捕获另一个进程的输出?

要在C语言中捕获另一个进程的输出,您可以使用popen()函数。popen()函数允许您运行一个外部进程,并将其输出重定向到一个文件流,您可以使用该文件流读取进程的输出。以下是一个简单的示例,演示如何使用popen()函数捕获另一个进程的输出:

代码语言:c
复制
#include<stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    char path[1035];

    fp = popen("ls", "r"); // 运行"ls"命令,并将输出重定向到文件流
    if (fp == NULL) {
        printf("Failed to run command\n" );
        exit(1);
    }

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

    pclose(fp); // 关闭文件流并等待命令完成
    return 0;
}

在这个示例中,我们使用popen()函数运行ls命令,并将其输出重定向到一个文件流。然后,我们使用fgets()函数从文件流中读取输出,并将其打印到控制台。最后,我们使用pclose()函数关闭文件流并等待命令完成。

请注意,popen()函数是一个危险的函数,因为它可能会导致安全漏洞。因此,您应该非常小心地使用它,并确保您的代码不会受到任何恶意输入的影响。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券