strlcpy(3) is often considered a safer option than strcpy(3) and/or strncpy(3) in the OpenBSD function world. Despite potential safety issues if the source isn’t null-terminated, the real problem lies in its inefficiency. Ulrich Drepper rejected adding strlcpy to glibc citing its inefficiency as a core reason. The issue stems from copying a “c-string” or a “null-terminated string.” In cases where truncation doesn’t matter, strlcpy is overkill, as it unnecessarily goes through all bytes of the source string. A better solution lies in functions like memccpy(3), memcpy(3), or strdup(3). Ultimately, strlcpy is seen as inefficient and lacking in practicality compared to other available options.
https://nrk.neocities.org/articles/not-a-fan-of-strlcpy