为什么printf输出的%m格式说明符"成功"?

时间:2016-10-18 13:26:02

标签: c

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

#include <stdio.h>

int main(void) {

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

1 个答案:

答案 0 :(得分:5)

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

来自man page

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

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