答案 0 :(得分:1)
正如@MarkPlotnick在评论中提到的,这一行不正确:
mkdir(str, "w");
但不是为文件权限编写显式数字,例如:
mkdir(str, 0755);
你应该更好地使用相应的符号常量,例如:
mkdir(str, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
可以找到更好地使用符号常量的原因here:
警告:编写文件权限的显式数字是不好的做法。它不仅不便携,而且还要求每个阅读程序的人都记住这些位的含义。要使程序清洁,请使用符号名称。
符号常量在头文件 sys / stat.h 中定义。