|
strlcpy はC言語で文字列を安全にコピーするための関数である。ISO で規定された関数ではないが、BSD libc などに含まれている。危険な使い方をしてしまいがちな関数 strcpy や strncpy の代替として、Todd C. Miller およびテオ・デ・ラート (Theo de Raadt) が開発した〔strlcpy and strlcat - consistent, safe, string copy and concatenation. - 1999 USENIX Annual Technical Conference, June 6-11, 1999, Monterey, California, USA 〕。 == 概要 == プロトタイプは size_t strlcpy (char *dst, const char *src, size_t size); であり、ポインタsrcの指すアドレスから最大でsize - 1バイトの文字列をdstにコピーし、dstの指す文字列が必ずNULL文字で終わるようにする。これによって、dstがchar配列の場合にsizeof(dst)をsizeとして指定すればバッファオーバーランしないことが保証される。 strncpyは似たプロトタイプを持つが、最大でsizeバイトをコピーするのでNULL文字で終わるとは限らない点や、文字列が短い場合にdstの残った部分をすべてゼロで埋める点がstrlcpyと異なる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Strlcpy」の詳細全文を読む スポンサード リンク
|