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

Anj*_*ulu 1 c

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

#include <stdio.h>

int main(void) {

    printf("%m");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

dbu*_*ush 5

这是Glibc扩展printf.它输出结果strerror(errno)并且不需要参数.

手册页:

   m      (Glibc  extension.)   Print output of strerror(errno).  No argu-
          ment is required.
Run Code Online (Sandbox Code Playgroud)

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