此错误消息从何而来?

jcu*_*bic 1 c linux gnu

我有一个名为 trickle 的程序,它发出警告,其源代码中有:

if (stat(sockname, &sb) == -1 &&
    (errno == EACCES || errno == ENOENT))
    warn("Could not reach trickled, working independently");
Run Code Online (Sandbox Code Playgroud)

但我得到的信息是:

trickle: Could not reach trickled, working independently: No such file or directory
Run Code Online (Sandbox Code Playgroud)

No such file or directory是从哪里来的?

小智 5

我认为,当您获得 errno 中存储的错误值时,函数 warn 可以将其用作精度。

在这种特殊情况下,我敢打赌它是 errno 中 Error NO ENTry 的 ENOENT。

人警告(3)

err()、verr()、warn() 和 vwarn() 函数根据全局变量 errno 附加从 strerror(3) 获得的错误消息,前面加上另一个冒号和空格,除非 fmt 参数为 NULL。