`
老竹枝
  • 浏览: 79089 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个简单的错误

 
阅读更多

  今天发现了一个简单的错误,但查很久都找不到原因,记录下来。

  某程序需要定期接收输入,然后fork一个进程出来通过exec函数执行相应的系统命令。但该程序运行一段时间后,执行任何系统命令时都会报错,错误信息是“Can't load '*.so'”,不能加载的包括是在标准路径中系统的so库文件。

  查找问题过程比较曲折,由于错误发生时系统其他功能正常,所以主要怀疑的方向是环境变量出现了问题以及fork和exec环境变量传递等问题。毫无疑问,查阅了很多文档以及测试,都是毫无头绪的。

  最后,实际的原因是:进程打开了过多的文件未及时关闭,导致文件句柄不足。

  问题很简单,但报错信息未能正确提示问题所在,甚至未能提示到接近的原因,导致查找方向性错误。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics