strlcpy() isn't standard. You have to provide your own implementation if you want your code to be portable.
size_t strlcpy(char *dst, const char *src, size_t dstsize)
{
size_t len = strlen(src);
if(dstsize)
*((char*)mempcpy(dst, src, min(len, dstsize-1))) = 0;
return len;
} *((char*)mempcpy(dst, src, min(len, dstsize-1))) = 0;
can be replace by ((char*)memcpy(dst, src, min(len, dstsize-1))[min(len, dstsize-1)] = 0;
if you don't have mempcpy