fs.lstat err变量中的errno是什么意思?[关闭]


0

我编写了此示例代码来复制Lstat错误。 var fs=require("fs"); var path="/home/unixroot/Desktop/zookeeper1"; fs.lstat(path,function(err,stats){ if(err) { if(err.code==="ENOENT") { fs.exists(path,function(exist) { if(!exist) console.log("Path does not exists"); }); } console.log(err); } else { console.log(stats); } }); 现在我提供了不存在的路径,并且在我打印err变量时。它显示像这样。 { [Error: ENOENT, lstat '/home/unixroot/Desktop/zookeeper1'] errno: 34, code: 'ENOENT', path: '/home/unixroot/Desktop/zookeeper1' } 我不确定errno在这种情况下是否为34。我的问题是什么意思,是否有这些errno的任何列表可找出导致此错误的确切原因。

Answers:


0

errno表示“错误号”,只是在类Unix系统上分配给特定错误的代码号。通常,代码的符号版本会更有用。

在C语言中,您将使用该strerror函数将代码转换为实际描述。似乎node.js没有包含这样的功能,但是似乎有一些用户实现:

您也可以查看联机帮助页,lstat或参阅glibc手册中有关错误代码部分


非常感谢您发表@jjlin的评论。我将查看这些链接。除此之外,我想问一个愚蠢的问题,linux或unix的lstat和nodejs fs.lstat是否执行相同的工作并返回相同的错误?因为如果是这样,它将完全解决我的问题。
user3342498

是的,如果命名相同,几乎可以肯定是依靠底层的操作系统和库来完成工作的,至少是在类Unix系统上。
jjlin 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.