snprintf.c
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 1996, 1997, 1998, 1999, 2000
  5.  * Sleepycat Software.  All rights reserved.
  6.  */
  7. #include "db_config.h"
  8. #ifndef lint
  9. static const char revid[] = "$Id: snprintf.c,v 11.5 2000/12/22 19:38:37 bostic Exp $";
  10. #endif /* not lint */
  11. #ifndef NO_SYSTEM_INCLUDES
  12. #include <sys/types.h>
  13. #include <stdio.h>
  14. #endif
  15. #include "db_int.h"
  16. /*
  17.  * snprintf --
  18.  * Bounded version of sprintf.
  19.  *
  20.  * PUBLIC: #ifndef HAVE_SNPRINTF
  21.  * PUBLIC: int snprintf __P((char *, size_t, const char *, ...));
  22.  * PUBLIC: #endif
  23.  */
  24. #ifndef HAVE_SNPRINTF
  25. int
  26. #ifdef __STDC__
  27. snprintf(char *str, size_t n, const char *fmt, ...)
  28. #else
  29. snprintf(str, n, fmt, va_alist)
  30. char *str;
  31. size_t n;
  32. const char *fmt;
  33. va_dcl
  34. #endif
  35. {
  36. va_list ap;
  37. int rval;
  38. COMPQUIET(n, 0);
  39. #ifdef __STDC__
  40. va_start(ap, fmt);
  41. #else
  42. va_start(ap);
  43. #endif
  44. #ifdef SPRINTF_RET_CHARPNT
  45. (void)vsprintf(str, fmt, ap);
  46. va_end(ap);
  47. return (strlen(str));
  48. #else
  49. rval = vsprintf(str, fmt, ap);
  50. va_end(ap);
  51. return (rval);
  52. #endif
  53. }
  54. #endif