【问题标题】:GLib-ERROR : Creating pipes for GWakeup: Too many open filesGLib-ERROR:为 GWakeup 创建管道:打开的文件太多
【发布时间】:2020-05-28 21:14:21
【问题描述】:

在 ubuntu 20.04 下使用 clang 9 运行我的 c++ 程序时出现此错误:

GLib-ERROR:为 GWakeup 创建管道:打开的文件太多

我知道我有很多打开的文件,这是一个带有 mip-map 平铺纹理缓存的 CGI 渲染器,它仅在需要时加载缓存中的部分图像而不是完整图像,从而保持文件打开。大约有 3000 张图片,但它在崩溃之前只打开了大约 1000 张。

我不明白的是,这些纹理文件是使用 stdlib fopen() 读取的,而不是 GLib/GTK。那么为什么错误来自 GLib?

【问题讨论】:

    标签: c++ file-io fopen glib


    【解决方案1】:

    打开文件的限制是进程或系统范围的。因此,它们是否由 GLib 打开并不重要(无论如何,它也使用相同的操作系统调用来打开文件)。如果您使用fopen() 同时打开了 1000 个文件,请考虑关闭它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2014-06-16
      • 2023-02-01
      相关资源
      最近更新 更多