strlcpy() 函数

size_t strlcpy(char *dst, const char *src, size_t siz)

{

   char *d = dst;  

       const char *s = src;  

       size_t n = siz;

        /* Copy as many bytes as will fit */  

        if (n != 0)

       {

            while (--n != 0)

     {   

       if ((*d++ = *s++) == '\0')     

        break;  

            }  

         }

  

        /* Not enough room in dst, add NUL and traverse rest of src */

    if (n == 0)

        {  

             if (siz != 0)    

                  *d = '\0'; 

            /* NUL-terminate dst */  

           while (*s++)    

              ;  

         }

 return(s - src - 1); /* count does not include NUL */

}

posted @ 2015-11-12 09:26  hbg-rohens  阅读(1282)  评论(0编辑  收藏  举报