【问题标题】:Using fopen in Raspberry pi4在树莓派 4 中使用 fopen
【发布时间】:2022-01-21 20:46:38
【问题描述】:

在树莓派 4 中,我尝试在 for 循环中使用 fopen 函数读取特定目录中的一系列文件(超过 1000 个文件),但是如果超过一定的迭代次数,fopen 无法读取文件.我该如何解决?

【问题讨论】:

  • 你的代码是什么样的?如果您没有关闭打开的文件,那么您的系统可能会用完文件指针。
  • 欢迎来到 Stack Overflow。请阅读the help pages,接受SO tour,阅读How to Ask,以及this question checklist。最后请学习如何创建一个minimal reproducible example,以及如何edit你的问题来改进它。
  • 顺便说一句,请不要使用不相关的标签发送垃圾邮件。你是用 C 还是 Python 编程?

标签: python c fopen


【解决方案1】:

但是如果超过一定的迭代次数,fopen 就无法读取文件。

一个大胆的猜测:你在处理完文件后忽略了fclose,导致最终耗尽内存或可用文件描述符。

我该如何解决这个问题?

确保fclose您的文件。

【讨论】:

    【解决方案2】:

    当您使用fopen 打开文件时,系统使用文件描述符指向该文件。而且只有这么多可用。一个快速的谷歌搜索说微软通常有 512 个文件描述符。此外,该文件被加载到内存中。因此,加载大量文件会很快耗尽您的内存。完成后,您应该关闭每个文件。处理几个文件时,这通常不是问题。但如果像您这样需要数千个文件的情况,则应在使用后尽快将其关闭。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 2021-06-10
      • 1970-01-01
      • 2021-01-23
      • 2020-12-05
      • 2020-09-16
      相关资源
      最近更新 更多