经过跟踪调试, 发下不少 bug 源于 sprintf 和 strcpy 之类可能造缓冲区溢出的函数.
应该将所有的 sprintf 用 snprintf 替换.
将 strcpy 用 strncpy 替换, 并且将末尾字节设置为 ''\0' .
代码如下:
strncpy(buf, str, len);
buf[len] = 0;
您可能感兴趣的文章:浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别基于C语言sprintf函数的深入理解C++中sprintf()函数的使用详解基于C++中sprintf的错误总结详解echo, print, printf 和 sprintf 区别C语言printf详细解析strncpy与snprintf 的用法比较字符串拷贝函数memcpy和strncpy以及snprintf 的性能比较C++中sprintf使用的方法与printf的区别分析
strcpy
sprintf