strncpy.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* strncpy.c - string copy, string */
  2. /* Copyright 1992-1993 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,25feb93,jdi  documentation cleanup for 5.1.
  7. 01b,20sep92,smb  documentation additions
  8. 01a,08jul92,smb  written and documented.
  9. */
  10. /*
  11. DESCRIPTION
  12. INCLUDE FILES: string.h
  13. SEE ALSO: American National Standard X3.159-1989
  14. NOMANUAL
  15. */
  16. #include "vxWorks.h"
  17. #include "string.h"
  18. /*******************************************************************************
  19. *
  20. * strncpy - copy characters from one string to another (ANSI)
  21. *
  22. * This routine copies <n> characters from string <s2> to string <s1>.
  23. * If <n> is greater than the length of <s2>, nulls are added to <s1>.
  24. * If <n> is less than or equal to the length of <s2>, the target
  25. * string will not be null-terminated.
  26. *
  27. * INCLUDE FILES: string.h
  28. *
  29. * RETURNS: A pointer to <s1>.
  30. */
  31. char *strncpy
  32.     (
  33.     char *      s1,    /* string to copy to */
  34.     const char *s2,    /* string to copy from */
  35.     size_t      n       /* max no. of characters to copy */
  36.     )
  37.     {
  38.     FAST char *d = s1;
  39.     if (n != 0)
  40. {
  41. while ((*d++ = *s2++) != 0) /* copy <s2>, checking size <n> */
  42.     {
  43.     if (--n == 0)
  44. return (s1);
  45.             }
  46. while (--n > 0)
  47.     *d++ = EOS; /* NULL terminate string */
  48. }
  49.     return (s1);
  50.     }