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++) == '')     

        break;  

            }  

         }

  

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

    if (n == 0)

        {  

             if (siz != 0)    

                  *d = ''; 

            /* NUL-terminate dst */  

           while (*s++)    

              ;  

         }

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

}

原文地址:https://www.cnblogs.com/rohens-hbg/p/4957956.html