1 #include <string.h> 2 #include "strlcat.h" 3 strlcat(char * dst,const char * src,size_t size)4size_t strlcat(char *dst, const char *src, size_t size) 5 { 6 size_t dstlen; 7 size_t srclen; 8 9 dstlen = strlen(dst); 10 size -= dstlen + 1; 11 12 /* return if no room */ 13 if (!size) 14 return dstlen; 15 16 srclen = strlen(src); 17 if (srclen > size) 18 srclen = size; 19 20 memcpy(dst + dstlen, src, srclen); 21 dst[dstlen + srclen] = '\0'; 22 23 return dstlen + srclen; 24 } 25