编译出现报错该怎么办!!!???

  • 这篇博客: Linux下文件句柄中的 Too many open files 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 如果Java打开文件的时候,没有关闭IO流,那么打开到一定数量,在Linux下就会抛出Too many open files的异常。

     
      
    1. public static class HoldIOTask implements Runnable {
    2. @Override
    3. public void run() {
    4. int count=0;
    5. try {
    6. while(true) {
    7. FileOutputStream fos = new FileOutputStream(new File("temp"));
    8. fos.write(1);
    9. fos.close();
    10. FileInputStream fis = new FileInputStream(new File("temp"));
    11. while(fis.read()!=-1);
    12. // fis.close();
    13. count++;
    14. Thread.sleep(5);
    15. }
    16. } catch (Throwable e) {
    17. System.out.println(count);
    18. e.printStackTrace();
    19. }
    20. }
    21. }

    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    如果在Linux环境下执行指令遇到了"too many open file"报错,需要进行如下处理:

    1. 首先需要了解每个用户最大允许打开的文件数量,可以通过运行ulimit -a来查看当前设置,其中 open files (-n) 表示每个用户最大允许打开的文件数量。

    2. 如果超过了最大允许打开文件数量的限制,需要修改系统的open files数值限制,可以通过运行ulimit -n 新的限制数值来修改。注意,这种修改方法在重启后会还原为默认值,需要进行永久设置。永久设置方法是修改限制文件/etc/security/limits.conf,在文件末尾加入如下内容即可:

     
       
    1. * soft nofile 新的限制数值
    2. * hard nofile 新的限制数值
    1. 如果需要检查发生"too many open file"报错的进程的Max open files,可以运行cat /proc/{pid}/limits |grep 'Max open files'命令来查看。如果需要修改Max open files的数量限制,也可以通过调整/etc/security/limits.conf文件来实现。

    需要注意的是,在修改完毕配置文件之后需要重启系统才能生效。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值