如何抑制库函数的输出

时间:2012-09-05 14:28:19

标签: c

我希望取消函数 smbc_opendir()的默认输出,并仅使用printf打印。

gcc filename.c -lsmbclient

#include <libsmbclient.h>
#include <stdio.h>

void auth_fn()
{

}

int main(int argc,char* argv[])   
{ 
  int dirHandle;
  if(smbc_init(auth_fn,  10)) /* Initialize things */
  {
     return 0;
  }
  dirHandle= smbc_opendir(argv[1]);    /* Argument is smb://<ip-address>/ */
  /* Just display value of dirHandle in output and nothing else */
  printf("%d",dirHandle);
  return 0;
}

2 个答案:

答案 0 :(得分:4)

尝试调试级别0,它应仅记录严重错误:smbc_init(auth_fn, 0)

答案 1 :(得分:3)

您可以使用以下内容重定向stdout或stderr:

stderr = freopen("/dev/null", "w", stderr );

然后你调用smbc_opendir。