mac 宽字符 wprintf 用 %S 才能正常打印, 用 %s 打印如果没有正确 setlocale 会打印乱码�, setlocale 正确的话会打印 `O.
其实 mac 默认就是 utf-8 不用 setlocale. 因格式问题未正确设置时会出现上面的特殊情况.
mac 中文 UTF-8 表示的格式略有不同 : zh_CN.UTF-8
window : zh_CN.utf8
可通过 locale -a 命令查看所有支持的编码
11章的 4, 6, 9 小节中, 必须要手动创建 data_copy 目录.fopen data_copy 文件夹不存在时报错 no such file found.
(这个不是 mac 平台特有问题, win 平台不创建也会报错; 也不是 C 语言特有问题, 是文件系统的要求, Java Python 也是一样)
附上判断文件夹是否存在并创建的代码片段
FILE *dest_dir = fopen("data_copy", "r");
if(dest_dir){
puts("exist");
fclose(dest_dir);
} else{
PRINT_IF_ERROR("access dest: %s", "data_copy");
mkdir("data_copy", 0700);
puts("don't exist");
}
// 第二种方法
if (access("data_copy",0) ){
PRINT_IF_ERROR("access dest: %s", "data_copy");
puts("DOESN'T EXISIT!");
mkdir("data_copy",0700);
}else{
puts("exist");
}
for (int i = 0; i < 2; ++i) {
TimeCost(NULL);
int result = CopyFile(srcs[i], dest[i]);
TimeCost(srcs[i]);
//---
if(result){
printf("result copy: %s result %d \n",srcs[i], result);
PRINT_IF_ERROR("CopyFile: %s", srcs[i]);
}
}