I am just beginning to understand strlcpy.
size_t strlcpy(char *destination, const char *source, size_t size);
My hypothetical question is: What if the destination and source point to the same object?
Example:
char destination[100];
const char*source = "text";
destination = source;
strlcpy(destination, source, sizeof(destination))
What goes on in the backend?
Is strlcpy aware that the source and destination share the same pointer?
Or
Does it blindly copy over and wastes cpu cycles - copying over the bytes which are the same?