0

好的,所以我正在 Linux(使用 C++)中执行一个函数,其中我必须检索具有具体权限的目录中的文件,例如:检索具有读取权限的 X 目录中的所有文件。

为此,我使用了 stat() 函数和 st_mode 变量。问题是我似乎无法使 stat 函数正确返回一个 stat 结构(从中我得到所需的 st_mode)。

功能如下(尚未完成):

void Search::filePermissionSelection () 
{
    dirStream = opendir (directory.c_str());

    if (dirStream == NULL)
    {
        cout << "error reading directory" << endl;
        exit (0);
    }
    else
    {
        struct stat statResult;
        int error = 0;

        while ((dirDirent = readdir (dirStream)) != NULL)
        {
            error = stat (dirDirent->d_name, &statResult);
            cout << dirDirent->d_name << " -> Value: " << error << endl;

            if (error == 0)
            {
                if (statResult.st_mode & S_IRUSR) cout << "Read permission ";    
                if (statResult.st_mode & S_IWUSR) cout << "Write permission ";    
                if (statResult.st_mode & S_IXUSR) cout << "Exec permission";    
                cout << endl;
            }
        }   
        closedir (dirStream);
    }
}
4

0 回答 0