Я прочитал, что fs.appendFile
не возвращает fd
( дескриптор файла), поэтому он открывает файл и даже закрывает его. Но в приведенном ниже примере я получаю ошибку Error: EMFILE: too many open files, open
[...Array(10000)].forEach( function (item,index) {
fs.appendFile("append.txt", index+ "\n", function (err) {
if (err) console.log(err);
})});
Что, как я предполагаю, означает, что для каждого нового добавления он открывает один и тот же файл снова и снова. Однако с потоком все в порядке
var stream = fs.createWriteStream("append.txt", {flags:'a'});
[...Array(10000)].forEach( function (item,index) {
stream.write(index + "\n")});
Итак, почему в первом случае appendFile не закрывает файл после операции?