[我在使用clang 9的ubuntu 20.04下运行我的C ++程序时收到此错误:
GLib-ERROR:为GWakeup创建管道:打开的文件太多
我知道我有很多打开的文件,这是一个具有mip-map切片纹理缓存的CGI渲染器,它在需要时仅将部分图像加载到缓存中,而不加载整个图像,从而使文件保持打开状态。大约有3000张图片,但在崩溃前仅打开了1000张图片。
我不明白,这些纹理文件是使用stdlib fopen()而不是GLib / GTK读取的。那么,为什么错误来自GLib?
打开文件的限制是整个过程或系统范围的。因此,是否由GLib打开它们都没关系(无论如何,GLib也使用相同的操作系统调用来打开文件)。如果使用fopen()
同时打开1000个文件,请考虑关闭它们。