Почему несоответствие между errno 34 и кодом ENOENT

Итак, если я выполню этот простой вызов в node.js v0.6.7 на OS X 10.6.8 с подделкой путь, я получаю сообщение об ошибке, как и ожидалось.

var fs = require("fs");
fs.stat("/tmp/foo", function(error, stat) {
    return console.log(error);
});

Он выводит следующий результат:

{ [Error: ENOENT, no such file or directory '/tmp/foo'] errno: 34, code: 'ENOENT', path: '/tmp/foo' }

Мой вопрос, согласно /usr/include/sys/errno.h в моей системе, ENOENT должен иметь код 2, так почему же эта ошибка говорит об ошибке errno 34 (ERANGE в errno.h), но объединяет ее с сообщением об ошибке из ENOENT ?

7
задан Peter Lyons 13 February 2012 в 00:04
поделиться