很多人都知道利用strncpy替代strcpy来防止缓冲区越界。
但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。
C/C++ code
size_t strlcpy (char *dst, const char *src, size_t dst_sz) { size_t n; for (n = 0; n < dst_sz; n++) { if ((*dst++ = *src++) == '\0') break; }
很多人都知道利用strncpy替代strcpy来防止缓冲区越界。
但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。
C/C++ code
size_t strlcpy (char *dst, const char *src, size_t dst_sz) { size_t n; for (n = 0; n < dst_sz; n++) { if ((*dst++ = *src++) == '\0') break; }