好的,所以我正在 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);
}
}