strncpy.c (101887) | strncpy.c (103012) |
---|---|
1/*- 2 * Copyright (c) 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Chris Torek. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 24 unchanged lines hidden (view full) --- 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 */ 36 37#if defined(LIBC_SCCS) && !defined(lint) 38static char sccsid[] = "@(#)strncpy.c 8.1 (Berkeley) 6/4/93"; 39#endif /* LIBC_SCCS and not lint */ 40#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Chris Torek. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 24 unchanged lines hidden (view full) --- 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 */ 36 37#if defined(LIBC_SCCS) && !defined(lint) 38static char sccsid[] = "@(#)strncpy.c 8.1 (Berkeley) 6/4/93"; 39#endif /* LIBC_SCCS and not lint */ 40#include <sys/cdefs.h> |
41__FBSDID("$FreeBSD: head/lib/libc/string/strncpy.c 101887 2002-08-14 22:59:22Z robert $"); | 41__FBSDID("$FreeBSD: head/lib/libc/string/strncpy.c 103012 2002-09-06 11:24:06Z tjr $"); |
42 43#include <string.h> 44 45/* 46 * Copy src to dst, truncating or null-padding to always copy n bytes. 47 * Return dst. 48 */ 49char * | 42 43#include <string.h> 44 45/* 46 * Copy src to dst, truncating or null-padding to always copy n bytes. 47 * Return dst. 48 */ 49char * |
50strncpy(char *__restrict dst, const char *__restrict src, size_t n) | 50strncpy(char * __restrict dst, const char * __restrict src, size_t n) |
51{ 52 if (n != 0) { 53 char *d = dst; 54 const char *s = src; 55 56 do { 57 if ((*d++ = *s++) == 0) { 58 /* NUL pad the remaining n-1 bytes */ 59 while (--n != 0) 60 *d++ = 0; 61 break; 62 } 63 } while (--n != 0); 64 } 65 return (dst); 66} | 51{ 52 if (n != 0) { 53 char *d = dst; 54 const char *s = src; 55 56 do { 57 if ((*d++ = *s++) == 0) { 58 /* NUL pad the remaining n-1 bytes */ 59 while (--n != 0) 60 *d++ = 0; 61 break; 62 } 63 } while (--n != 0); 64 } 65 return (dst); 66} |