如何在C中抑制库函数的标准输出

在自己的程序中调用编译好的库函数时,如果库函数会输出一些提示信息(比如初始化信息、版本信息或者警告信息)而你又不喜欢这些信息,并且你希望保留另外一些函数的标准输出,可以在编程调用时这样做:

FILE *stdbk;
 
stdbk=stdout;//备份stdout
 
stdout=fopen("/dev/null","w");//把标准输出导进/dev/null,即丢弃;或者导进其他随便一个临时文件
 
your_library_function_call();//这里调用你想抑制输出的库函数
 
stdout=stdbk; //还原stdout

该功能的实现依赖于glibc对于stdout文件允许重新定位。不知道windows下是否也可以。