要在C语言中捕获另一个进程的输出,您可以使用popen()
函数。popen()
函数允许您运行一个外部进程,并将其输出重定向到一个文件流,您可以使用该文件流读取进程的输出。以下是一个简单的示例,演示如何使用popen()
函数捕获另一个进程的输出:
#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()
函数是一个危险的函数,因为它可能会导致安全漏洞。因此,您应该非常小心地使用它,并确保您的代码不会受到任何恶意输入的影响。
高校公开课
Elastic 中国开发者大会
serverless days
技术创作101训练营
DBTalk
Techo Day
云+社区技术沙龙[第7期]
云+社区技术沙龙[第28期]
领取专属 10元无门槛券
手把手带您无忧上云