从C中的stdout输出系统命令,可以使用popen()
函数。popen()
函数可以创建一个管道,并执行一个子进程,将子进程的标准输出连接到管道。然后,可以使用fread()
函数从管道中读取子进程的输出,并将其发送到标准输出。
以下是一个简单的示例代码:
#include<stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char path[1035];
fp = popen("echo $PATH", "r");
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()
函数执行echo $PATH
命令,并将其标准输出连接到管道。然后,我们使用fgets()
函数从管道中读取输出,并将其发送到标准输出。最后,我们使用pclose()
函数关闭管道并等待子进程完成。
领取专属 10元无门槛券
手把手带您无忧上云