C:如何将stderr从System-command重定向到stdout或文件?

前端之家收集整理的这篇文章主要介绍了C:如何将stderr从System-command重定向到stdout或文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
shell命令$avrdude -c usbtiny将文本输出到stderr.我无法通过诸如head-less-more之类的命令来阅读它.它不是stdout.我想要文本stdout或文件.我怎么能用C做呢?我试图在 my last question之前解决问题,但仍未解决.

解决方法

我在OpenBSD中没有尝试过这样的东西,但至少在类似* nix的系统中,你可以使用dup2来做到这一点.
#include <unistd.h>
#include <stdio.h>

int main(void) {  

  fprintf(stderr,"This goes to stderr\n");

  dup2(1,2);  //redirects stderr to stdout below this line.

  fprintf(stderr,"This goes to stdout\n");
}

猜你在找的C&C++相关文章