您的位置:首页 > 其它

strlcat,strlcpy

2016-05-18 16:28 302 查看
/*

* '_cups_strlcat()' - Safely concatenate two strings.

*/

size_t /* O - Length of string */

strlcat(char *dst, /* O - Destination string */

const char *src, /* I - Source string */

size_t size) /* I - Size of destination string buffer */

{

size_t srclen; /* Length of source string */

size_t dstlen; /* Length of destination string */

/*

* Figure out how much room is left...

*/

dstlen = strlen(dst);

size -= dstlen + 1;

if (!size)

return (dstlen); /* No room, return immediately... */

/*

* Figure out how much room is needed...

*/

srclen = strlen(src);

/*

* Copy the appropriate amount...

*/

if (srclen > size)

srclen = size;

memcpy(dst + dstlen, src, srclen);

dst[dstlen + srclen] = '\0';

return (dstlen + srclen);

}

#endif /* !HAVE_STRLCAT */

#ifndef HAVE_STRLCPY

/*

* '_cups_strlcpy()' - Safely copy two strings.

*/

size_t /* O - Length of string */

strlcpy(char *dst, /* O - Destination string */

const char *src, /* I - Source string */

size_t size) /* I - Size of destination string buffer */

{

size_t srclen; /* Length of source string */

/*

* Figure out how much room is needed...

*/

size --;

srclen = strlen(src);

/*

* Copy the appropriate amount...

*/

if (srclen > size)

srclen = size;

memcpy(dst, src, srclen);

dst[srclen] = '\0';

return (srclen);

}

#endif /* !HAVE_STRLCPY */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: