strlcpy(3)の戻り値

トラックバックいただいたので補足。
strlcpy(3)は、(strncpy(3)と違って)生成しようとした文字列の長さを返してくれます。これを利用して、生成しようとした文字列が途中で切られてしまったかどうか判定することができます。
以下、使用例をNetBSDのマニュアル(strcpy(3))より引用します。

char *dir, *file, pname[MAXPATHLEN];

...

if (strlcpy(pname, dir, sizeof(pname)) >= sizeof(pname))
        goto toolong;
if (strlcat(pname, file, sizeof(pname)) >= sizeof(pname))
        goto toolong;

なので、strlcat(3)はLispもどきな使い方はできませんw
参考: