Linux 民意调查正在导致崩溃
我得到一个具有以下值的崩溃:- Poll是正在使用的系统调用 将“errno”设为24(EMFILE) 结构pollfd的值为“fd=1022,events=1,revents=32” 这里我们正在研究“fd=1022”,那么为什么它将“errno”显示为24(EMFILE/打开的文件太多/)Linux 民意调查正在导致崩溃,linux,multithreading,linux-kernel,polling,Linux,Multithreading,Linux Kernel,Polling,我得到一个具有以下值的崩溃:- Poll是正在使用的系统调用 将“errno”设为24(EMFILE) 结构pollfd的值为“fd=1022,events=1,revents=32” 这里我们正在研究“fd=1022”,那么为什么它将“errno”显示为24(EMFILE/打开的文件太多/) 我有多个线程在无限循环中工作。在我的机器上,ulimit-a显示1024个最大打开文件。1022非常接近这个极限 您是否有试图打开文件但失败的代码?可能是其他系统调用将errno设置为EMFILE 确保您
我有多个线程在无限循环中工作。在我的机器上,
ulimit-a
显示1024个最大打开文件。1022非常接近这个极限
您是否有试图打开文件但失败的代码?可能是其他系统调用将errno设置为EMFILE
确保您正在处理来自打开fds的代码的返回值
确保您没有在某处泄漏文件描述符
如果此代码以适当的权限运行,则可以尝试使用ulimit-n
或setrlimit()
增加最大打开文件限制