/********************************************************************************/ /* strcpy_safe - Copy src string to dst string, upto maxlen characters. */ /* Safer than strncpy, because it does not fill destination string, */ /* but only copies up to the length needed. Src string should be */ /* null-terminated, and must-be if its allocated length is shorter than maxlen. */ /* Up to maxlen-1 characters are copied to dst string. The dst string is always */ /* null-terminated. The dst string should be pre-allocated to at least maxlen */ /* bytes. However, this function will work safely for dst arrays that are less */ /* than maxlen, as long as the null-terminated src string is known to be */ /* shorter than the allocated length of dst, just like regular strcpy. */ /********************************************************************************/ void strcpy_safe( char *dst, const char *src, int maxlen ) { int j=0, oneless; oneless = maxlen - 1; while ((j &lgt; oneless) && (src[j] != '\0')) { dst[j] = src[j]; j++; } dst[j] = '\0'; }