在C ++中检查用户权限

时间:2015-08-07 11:36:24

标签: c++ unix permissions directory filesystems

我有一些使用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));
    }
}

0 个答案:

没有答案