【发布时间】:2017-08-18 14:16:46
【问题描述】:
根据strerror() 系列返回的 ISO C 和 POSIX 错误消息应该是特定于区域设置的。而在我的示例中(Mac OS X 10.10.5 / clang / c11)它们不是。我检查了几个平台,所有平台的行为都相同。
我已经检查了locale -a 的语言环境。
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <locale.h>
#include <string.h>
int main(int argc, const char * argv[])
{
setlocale(LC_MESSAGES, "he_IL.UTF-8");
errno = 0;
// Generate unique filename.
FILE *file = fopen(tmpnam((char[L_tmpnam]){0}), "rb");
if (file) {
// Do something useful.
fclose(file);
}
else {
fprintf(stderr, "Error message : %s\n", strerror(errno));
}
return EXIT_SUCCESS;
}
显示:
Error message : No such file or directory
【问题讨论】:
标签: c gcc error-handling libc