我已經編寫了一個遞歸讀取一個目錄中的文件,修改它們並將它們寫入另一個目錄的程序。每次我運行該程序時,都會在幾百次迭代後出現惡意程序。我再次運行它,似乎完成了這項任務。nodejs/Mac並打開文件限制
無論是nodejs還是Mac OS X,或者很可能是nodejs-on-Mac-OS-X,似乎都對可同時打開的文件數量有限制。到處搜索,我發現解決方案是使用像ulimit -n 10480
這樣的東西,一切都會好的。這是正確的方式嗎?本能地,我寧願不修補我的系統設置,而是修改我的程序以在極限內工作。
觀察:早先我曾經使用Perl來完成我上面描述的任務,而且我從來沒有遇到過問題。我假設這是因爲我正在打開,轉換,然後關閉文件,然後移動。在nodejs中,使用async
模式,我無法在繼續下一個文件之前關閉文件。如果我在sync
模式下執行任務,它工作正常。