看postgres代码修改记录时URL,想起之前也看到过printf("%m\n"); 这样类似语句,这个到底是什么格式输出呢?查看资料,还是man大法好。
m (Glibc extension.) Print output of strerror(errno). No argument is required.
原来等价于printf("%s",strerror(errno));
简单示例:
#include<stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <fcntl.h>
int main(void)
{
printf("%m\n",errno);
int fd=open("12.txt",O_RDWR);
if(fd==-1)
printf("%m\n");
perror("+");
}
wln@iZ232ngsvp8Z:~/tmp> gcc -g -o m m.c
wln@iZ232ngsvp8Z:~/tmp> ./m
Success
No such file or directory
+: No such file or directory
有关error
wln@iZ232ngsvp8Z:~/tmp> ./errno
0 : Success
1 : Operation not permitted
2 : No such file or directory
3 : No such process
4 : Interrupted system call
5 : Input/output error
6 : No such device or address
7 : Argument list too long
8 : Exec format error
.......