linux系统设置文件描述符数量,在Linux中增加文件描述符的数量

我有一个长时间运行的进程,它监视系统并打印周期性日志。如果我让它运行超过10-15分钟,它将退出并显示一条消息: 打开的文件过多。在Linux中增加文件描述符的数量

该程序使用实时timer_create()和timer_settime()每2秒引发一次SIGUSR1来设置。在处理程序中,在子节点中有一个fork() - exec()在/ proc/acpi/battery/state和/ sys/devices/system/cpu/cpu0上有父母和后续mmap()和流操作的等待/ cpufreq/scaling_cur_freq和scaling_setspeed文件。 我已经注意在周期性信号处理程序和所有其他地方关闭流FILE *指针。我也确保了所有映射文件的munmap()。

我该如何解决这个问题? 我应该增加允许的最大文件描述符,还是应该增加ulimit -aS显示的最大打开文件? 为什么如果我使用fclose()关闭所有FILE *,会发生这种情况?

这里有值我的系统,截至目前:

#cat /proc/sys/fs/file-max

152808

#ulimit -aS

.

.

.

.

open files (-n) 1024

2009-07-27

Dhruv

+1

你肯定在某个地方泄漏。 –

2009-07-27 16:33:59

+0

就像我在下面提到的,我没有正确关闭其中一个文件的流指针。我在fclose()被调用之前返回,如下所示: if(freq ==“1000000”) return 0; (频率==“1333000”) 返回1; else if(freq ==“1667000”) return 2; fclose(fp); 我把fclose放在if-else语句之前,它已经修复了。 –

2009-07-27 18:17:05

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值