1570af302Sopenharmony_ci#include <string.h> 2570af302Sopenharmony_ci 3570af302Sopenharmony_cichar *__stpncpy(char *dst, const char *src, size_t n) 4570af302Sopenharmony_ci{ 5570af302Sopenharmony_ci char *d = dst, *s = src; 6570af302Sopenharmony_ci dst = &dst[n]; 7570af302Sopenharmony_ci while (n > 0){ 8570af302Sopenharmony_ci if((*d++ = *src++) == 0){ 9570af302Sopenharmony_ci dst = d - 1; 10570af302Sopenharmony_ci while(--n > 0){ 11570af302Sopenharmony_ci *d++ = 0; 12570af302Sopenharmony_ci } 13570af302Sopenharmony_ci break; 14570af302Sopenharmony_ci } 15570af302Sopenharmony_ci n--; 16570af302Sopenharmony_ci } 17570af302Sopenharmony_ci return (dst); 18570af302Sopenharmony_ci} 19570af302Sopenharmony_ci 20570af302Sopenharmony_ciweak_alias(__stpncpy, stpncpy); 21