1 /* 2 * Copyright (c) 1980 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 */ 6 7 #if defined(LIBC_SCCS) && !defined(lint) 8 static char sccsid[] = "@(#)strcpyn.c 4.3 (Berkeley) 03/09/86"; 9 #endif LIBC_SCCS and not lint 10 11 /* 12 * Copy s2 to s1, truncating or null-padding to always copy n bytes 13 * return s1 14 */ 15 16 char * 17 strcpyn(s1, s2, n) 18 register char *s1, *s2; 19 { 20 register i; 21 register char *os1; 22 23 os1 = s1; 24 for (i = 0; i < n; i++) 25 if ((*s1++ = *s2++) == '\0') { 26 while (++i < n) 27 *s1++ = '\0'; 28 return(os1); 29 } 30 return(os1); 31 } 32