xref: /csrg-svn/lib/libc/string/strncpy.c (revision 26600)
1 #if defined(LIBC_SCCS) && !defined(lint)
2 static char sccsid[] = "@(#)strncpy.c	5.2 (Berkeley) 03/09/86";
3 #endif LIBC_SCCS and not lint
4 
5 /*
6  * Copy s2 to s1, truncating or null-padding to always copy n bytes
7  * return s1
8  */
9 
10 char *
11 strncpy(s1, s2, n)
12 register char *s1, *s2;
13 {
14 	register i;
15 	register char *os1;
16 
17 	os1 = s1;
18 	for (i = 0; i < n; i++)
19 		if ((*s1++ = *s2++) == '\0') {
20 			while (++i < n)
21 				*s1++ = '\0';
22 			return(os1);
23 		}
24 	return(os1);
25 }
26