在Windows 7中打开太多文件(EMFILE错误)

时间:2015-08-11 03:30:02

标签: node.js windows windows-7 gulp

我使用Node.js(0.10.31)和Gulp(3.8.8)来自动执行Windows 7中的某些任务,但我遇到了以下错误:

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: EMFILE, open 'c:\myproject\package.json'

我已将项目移至Ubuntu并使用ulimit -n命令修复该问题,但仍然对如何在Windows中解决该问题感到好奇。

现在,首先我想知道是否有任何限制阻止在Windows 7中打开更多导致EMFILE error的文件/套接字?

其次,如果是,我该如何改变这个限制?

1 个答案:

答案 0 :(得分:3)

VSC ++运行时内部存在限制。应用程序只能通过运行时打开512个文件描述符,但如果应用程序调用{​​{1}}(我认为节点没有),则值可以增加到2048。 (这是一个稍微简化的解释,有关详细信息,请参阅here。)您无法直接更改此限制(如果您希望节点以某种方式为您调用此函数,则只能提高512到2048) )。

但是你写的是你使用的节点v0.10.31已经很老了。据我所知(虽然我并不是100%肯定),同时节点已经从使用文件I / O的VSC ++运行时切换到没有此限制的本机WinAPI调用,所以你可以尝试最新的节点版本,如果这是你的选择。

相关问题