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来做到这一点.
  1. #include <unistd.h>
  2. #include <stdio.h>
  3.  
  4. int main(void) {
  5.  
  6. fprintf(stderr,"This goes to stderr\n");
  7.  
  8. dup2(1,2); //redirects stderr to stdout below this line.
  9.  
  10. fprintf(stderr,"This goes to stdout\n");
  11. }

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