Strlcpy
関数プロトタイプ(宣言)は以下である。
ポインタsrcの指すアドレスから最大でsize - 1バイトの文字列をdstにコピーし、dstの指す文字列が必ずNUL文字で終わるようにする。つまり、dstのバッファの実際の大きさをsizeに指定すれば、バッファオーバーランしないことが保証される。
strncpyは似たプロトタイプchar *strncpy(char *dest, const char *src, size_t count)を持つが、最大でcountバイトをコピーするためNUL文字で終わるとは限らない点や、文字列が短い場合にdstの残った部分をすべてゼロで埋める点がstrlcpyと異なる。
strlcpy はC言語で文字列を安全にコピーするための関数である。ISO/IEC で規定された標準Cライブラリの関数ではないが、BSD libc などに含まれている。危険な使い方をしてしまいがちな関数strcpyやstrncpyの代替として、Todd C. MillerおよびTheo de Raadt (テオ・デ・ラート) が開発した。