Strlcat
関数プロトタイプ(宣言)は以下である。
ポインタsrcの指すアドレスから最大でsize - strlen(dst) - 1バイトだけ文字列をdstの末尾に追記し、NUL文字で終わるようにする。つまり、dstのバッファの実際の大きさをsizeに指定すれば、バッファオーバーランしないことが保証される。
strncatは似たプロトタイプchar *strncat(char *dest, const char *src, size_t count)を持つが、第3引数countの意味はsrcから最大で何バイトコピーするかであり、NUL文字を考慮すると最大でcount + 1バイトがコピーされる。またcountの値は、destに既に存在する文字数も考慮しなくてはいけない。この複雑さからしばしばcountの指定を誤り、バッファオーバーランの原因となる。