C++的惨痛教训(未完待续)

题记:只有痛才能让人铭记!痛促进进步~

1. strncpy,大家都知道要做安全检查,可是谁都有嫌麻烦的时候,尤其是自己很自信不会产生溢出的时候,可能不会坑了自己,却会坑了使用这段代码的人。所以,1.任何时候都不要怕麻烦,安全检查必不可少,这个疏忽在工程上会存在很大隐患;2.在使用公共代码时,留意这类溢出函数( strcpy、strcat、sprintf(及其同类 vsprintf )和 gets)。3.windows编程建议使用微软的安全字符串函数( strcpy_s、strcat_s、sprintf_s)。详见安全编程: 防止缓冲区溢出

2.std::locale:global,更改设置全局C++语言环境,更多见fstream支持中文路径时使用,请注意其在多线程环境下的问题(严重不严重,遇到了说的算),见我一篇随笔【std::fstream打开中文路径名失败的问题原因、解决方法以及注意事项】。不严重的就是,多线程时会有大屏输出中文乱码(仅一次,当然不严重了,不介意就直接忽略啦);严重的得时候,会导致程序崩溃,而且还不好判断出原因(不要害怕,你不一定能遇到,可是我就不幸的遇到了,!!_!!)。

原文地址:https://www.cnblogs.com/Totems/p/3191817.html