xref: /csrg-svn/lib/libc/string/strncpy.c (revision 1989)
1*1989Swnj /* @(#)strncpy.c	4.1 (Berkeley) 12/21/80 */
2*1989Swnj /*
3*1989Swnj  * Copy s2 to s1, truncating or null-padding to always copy n bytes
4*1989Swnj  * return s1
5*1989Swnj  */
6*1989Swnj 
7*1989Swnj char *
8*1989Swnj strncpy(s1, s2, n)
9*1989Swnj register char *s1, *s2;
10*1989Swnj {
11*1989Swnj 	register i;
12*1989Swnj 	register char *os1;
13*1989Swnj 
14*1989Swnj 	os1 = s1;
15*1989Swnj 	for (i = 0; i < n; i++)
16*1989Swnj 		if ((*s1++ = *s2++) == '\0') {
17*1989Swnj 			while (++i < n)
18*1989Swnj 				*s1++ = '\0';
19*1989Swnj 			return(os1);
20*1989Swnj 		}
21*1989Swnj 	return(os1);
22*1989Swnj }
23