cvsweb at: http://www.chiark.greenend.org.uk/ucgi/~richardk/cvsweb/strlcpy/
This package contains several implementations of strlcpy() and strlcat(), plus some test routines.
strlcpy and strlcat variants of strcpy and strcat designed to be less likely to cause buffer overruns. They take a third parameter giving the size of the buffer they are to write to, and promise not to overflow it. They also promise to leave a null terminator in the resulting string.
bsd-*.c are taken from OpenBSD. They are quite fast for short strings. You can find the most recent versions in OpenBSD at http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/string/.
rjk-*.c are versions I wrote a while ago. rjk2-*.c are variants which use strlen() instead of manually counting over characters.
memcpy-*.c are very simple verions which defer almost all the work to memcpy(). For large strings they are (on my system) much faster than any of the others, but for small strings they are much slower.