您可以strerror()
用来获取易于理解的错误号字符串。这是由相同的字符串打印出来的,perror()
但是如果您要格式化错误消息而不是标准错误输出,这将很有用。
例如:
#include <errno.h>
#include <string.h>
/* ... */
if(read(fd, buf, 1)==-1) {
printf("Oh dear, something went wrong with read()! %s\n", strerror(errno));
}
Linux还支持显式线程安全变体strerror_r()
。