【问题标题】:Why does the %m format specifier for printf output "Success"? [duplicate]为什么 printf 的 %m 格式说明符输出“成功”? [复制]
【发布时间】:2017-02-27 19:21:31
【问题描述】:

这段代码的输出如何是“成功”?当我编译这段代码时,它只是输出“成功”

#include <stdio.h>

int main(void) {

    printf("%m");
    return 0;
}

【问题讨论】:

    标签: c


    【解决方案1】:

    这是printf 的 Glibc 扩展。它输出strerror(errno) 的结果,不需要参数。

    来自man page

       m      (Glibc  extension.)   Print output of strerror(errno).  No argu-
              ment is required.
    

    由于errno 在启动时从 0 开始,它会打印错误代码 0 的消息,即Success

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 2013-06-22
      • 2014-01-01
      • 2021-12-20
      • 2018-11-22
      • 1970-01-01
      • 2017-11-16
      • 2020-07-30
      • 2012-05-17
      相关资源
      最近更新 更多