3

我希望抑制函数smbc_opendir()的默认输出,并且只使用 printf 打印。

gcc 文件名.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;
}
4

2 回答 2

4

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

于 2012-09-05T14:45:10.983 回答
3

您可以使用以下内容重定向标准输出或标准错误:

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

然后你调用 smbc_opendir。

于 2012-09-05T14:40:03.797 回答