【问题标题】:Why does perror function return success value?为什么 perror 函数返回成功值?
【发布时间】:2015-06-29 08:52:54
【问题描述】:

我用c语言写了一个tcp连接的代码,在某个地方我添加了两个错误:

perror("FAIL1: ...");
perror("FAIL2: ...");

输出是: FAIL1: ..: 成功 FAIL2: ..: 参数无效 只是想了解-“成功”是什么意思? TNX!

【问题讨论】:

  • 这意味着errno变量不包含错误代码。 perror() 读取errno 的值并将相应的消息打印到stderr。
  • 举个例子:你可以把错误码改成EACCES之类的,然后调用perror()查看打印的内容。
  • 我想你的意思是errno
  • “成功”表示没有错误。如果您的问题实际上是“函数的返回码表示失败,但 perror 表示成功”,那么您在失败和碰巧成功的 perror 之间进行了额外的系统调用。

标签: c linux unix tcp tcpclient


【解决方案1】:

查看下面的手册页。 http://man7.org/linux/man-pages/man3/perror.3.html

前两段有你需要的内容。

本质上,全局变量“errno”的字符串表示会与您的参数一起打印出来。如果您没有错误 (errono = 0)。这会导致您的程序打印“SUCCESS”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2014-06-06
    • 1970-01-01
    • 2012-11-30
    • 2022-01-12
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多