Portability wrapper that calls strlcpy() on systems which have it,
and emulates strlcpy() otherwise. Copies @src to @dest; @dest is
guaranteed to be nul-terminated; @src must be nul-terminated;
@dest_size is the buffer size, not the number of bytes to copy.
At most @dest_size - 1 characters will be copied. Always nul-terminates
(unless @dest_size is 0). This function does not allocate memory. Unlike
strncpy(), this function doesn't pad @dest (so it's often faster). It
returns the size of the attempted result, strlen (src), so if
@retval >= @dest_size, truncation occurred.
Caveat: strlcpy() is supposedly more secure than strcpy() or strncpy(),
but if you really want to avoid screwups, g_strdup() is an even better
idea.
Portability wrapper that calls strlcpy() on systems which have it, and emulates strlcpy() otherwise. Copies @src to @dest; @dest is guaranteed to be nul-terminated; @src must be nul-terminated; @dest_size is the buffer size, not the number of bytes to copy.
At most @dest_size - 1 characters will be copied. Always nul-terminates (unless @dest_size is 0). This function does not allocate memory. Unlike strncpy(), this function doesn't pad @dest (so it's often faster). It returns the size of the attempted result, strlen (src), so if @retval >= @dest_size, truncation occurred.
Caveat: strlcpy() is supposedly more secure than strcpy() or strncpy(), but if you really want to avoid screwups, g_strdup() is an even better idea.