如果文件夹不存在,我需要创建它,所以我使用:
bool mkdir_if_not_exist(const char *dir)
{
bool ret = false;
if (dir) {
// first check if folder exists
struct stat folder_info;
if (stat(dir, &folder_info) != 0) {
if (errno == ENOENT) { // create folder
if (mkdir(dir, S_IRWXU | S_IXGRP | S_IRGRP | S_IROTH | S_IXOTH) ?!= 0) // 755
perror("mkdir");
else
ret = true;
} else
perror("stat");
} else
ret = true; ?// dir exists
}
return ret;
}
该文件夹仅在程序第一次运行时创建 - 之后它只是一个检查。有一个建议是跳过 stat 调用并调用 mkdir 并根据 EEXIST 检查 errno。它会带来真正的好处吗?