我编写了一个编译并运行外部程序(prog1.c)的程序。我想以某种方式得到prog1.c的输出。
例如,如果prog1.c为printf("HELLO");
并将HELLO打印到终端,我希望此输出到达程序或文件中的变量。
我看到某处有关于管道的东西,但我不太了解这个命令,也不知道这是否正确。
任何人都可以帮助我,指导我或给我一个例子吗? 谢谢!
答案 0 :(得分:1)
使用freopen,您可以将printf
输出重定向到文件。
freopen("c:\\output\\output.txt","w",stdout);
printf("write in file using printf"); //this will be printed to file, not to console
如果您想了解更多信息,可以在此处查看我的video tutorial。
在这个例子中,我没有使用过管道,而是将标准输出重定向到文件而不是控制台。
答案 1 :(得分:0)
你也可以使用pipe(和fork)将prog1的输出重定向到另一个prog中的输入, 并检查waitpid以捕获返回值