linux fopen函数 too many open files错误

原因:句柄被用完了

出现这种情况有会是以下几种情况导致的:

  1:文件句柄未关闭  包括普通文件、socket描述符、数据库连接等

  2:所有句柄虽然释放了,但是没有人工释放,在垃圾回收中积累着,在某一时刻爆发出错。

  3:在fclose(fp)之前,操作系统并未将缓冲区中的文件内容写入磁盘,导致写多次后打开的文件就多了

解决办法:

  1:通过ulimit 来修改 file opens选项的值(只使用当前会话)

  2:echo "8192" > /proc/sys/fs/fs-max  重启电脑(不一定管用)

  3:最好的办法就是检查源码,修改错误。

 

 

另外:如果fclose(fp),其中fp并未指向任何文件,这样会导致程序崩溃或出现内存错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值