» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

strlcat

strlcatC言語文字列を安全に結合するための関数である。ISO で規定された関数ではないが、BSD libc などに含まれている。危険な使い方をしてしまいがちな関数strcatや(strncat)の代替として、Todd C. Millerおよびテオ・デ・ラート (Theo de Raadt) が開発した[1]

概要

プロトタイプ

size_t strlcat (char *dst, const char *src, size_t size); 

であり、ポインタsrcの指すアドレスから最大でsize - strlen(dst) - 1バイト文字列をdstの末尾に追記し、NULL文字で終わるようにする。つまり、dstのバッファの実際の大きさをsizeに指定すれば、バッファオーバーランしないことが保証される。

strncatは似たプロトタイプを持つが、sizeの意味はsrcから最大で何バイトコピーするかであり、NULL文字を考慮すると最大でsize + 1バイトをコピーされる。またsizeの値は、dstに既に存在する文字数も考慮しなくてはいけない。この複雑さからしばしばsizeの指定を誤り、バッファオーバーランの原因となる。

実装状況

Millerとデ・ラットはOpenBSDの開発者であり、strlcatを最初に実装したオペレーティングシステム (OS) はOpenBSD 2.4である。以後、FreeBSD 3.3を含め、SolarismacOSにも採用されている。Linux では libbsd ライブラリ経由で利用できる。glibc や には実装されていない。

関連項目

参照

  1. ^ strlcpy and strlcat - consistent, safe, string copy and concatenation. - 1999 USENIX Annual Technical Conference, June 6-11, 1999, Monterey, California, USA

外部リンク

ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。