从今天开始,我将发表一系列博闻
和大家探讨一下我以前遇到的一些BUG,这些BUG可能你们遇到过,或者还没有遇到。
希望给后来者提供一些帮助。
BUG0001文件打开没关闭
开发语言:
C++
现象:
突然LOG不能输出出了,(刚开始的时候LOG不能写,后来,配置文件也不能读了,程序就什么都做不了了)
后来调试过程中发现下列英文信息:
Too many open files. No more file descriptors are available, so no more files can be opened.
在没看到该信息之前确实调查了很久,因为,如何调试,也是发现不了问题的!!!
可能原因:
大家如果发现类似现象,如果调试不是其他问题,那么就可以考虑是否是
下面的原因了,虽然原因很简单,并且也是当然的事情,但是程序写复杂了,就可能有漏掉的,并且
可能由于某种原因,只能在某种情况下发生!
(1)原因是文件打开没关闭
(2)SOCKET没关闭(HTTP通讯)
解决策略:
检查所有打开和关闭的代码严格保证匹配
以上