我有一些使用sys / stat.h头创建目录的代码。但是,在尝试创建用户没有正确权限的目录时(例如在/中创建文件夹的非root用户),不会抛出任何错误,也不会给出输出,即使该文件夹不是创建。有没有办法在创建目录之前检查用户是否具有正确的权限?我的代码如下。
//Defines the mkdir command
#include <iostream>
#include <string>
#include <sys/stat.h>
//C headers
#include <cerrno>
#include <cstring>
#include <cstdio>
//Custom headers
#include "string_algorithms.hpp"
#include "chdir.hpp"
//Defines current working directory
#define GetCurrentDir getcwd
using namespace std;
void mkdirFunc(string path)
{
try
{
//Find how many directories need to be created
vector<string> numberOfDirectories = strSplitter(path, "\\");
int count=0;
char cCurrentPath[FILENAME_MAX];
if (!GetCurrentDir(cCurrentPath, sizeof(cCurrentPath)))
{
printf("ERROR: %s\n", strerror(errno));
}
for(int i=0; i<numberOfDirectories.size(); i++)
{
mkdir(string(numberOfDirectories[i]).c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
chdirFunc(string(numberOfDirectories[i]));
}
chdirFunc(cCurrentPath);
}
catch(int e)
{
printf("ERROR: %s\n", strerror(errno));
}
}