I'm trying to get the permissions of files in a directory. Here's what I think are the most relevant sections of code. If you need more let me know and I'll make short program that demonstrates the whole thing.
Code:
dirent* e = readdir(dirHandle);
if (!e)
return false;
stat(e->d_name, &buf);
name = e->d_name;
if (buf.st_mode & S_IRUSR == S_IRUSR)
permissions = "r";
else
permissions += "-";
if (buf.st_mode & S_IWUSR == S_IWUSR)
permissions += "w";
else
permissions += "-";
if (buf.st_mode & S_IXUSR == S_IXUSR)
permissions += "x";
else
permissions += "-";
if (buf.st_mode & S_IRGRP == S_IRGRP)
permissions += "r";
else
permissions += "-";
if (buf.st_mode & S_IWGRP == S_IWGRP)
permissions += "w";
else
permissions += "-";
if (buf.st_mode & S_IXGRP == S_IXGRP)
permissions += "x";
else
permissions += "-";
if (buf.st_mode & S_IROTH == S_IROTH)
permissions += "r";
else
permissions += "-";
if (buf.st_mode & S_IWOTH == S_IWOTH)
permissions += "w";
else
permissions += "-";
if (buf.st_mode & S_IXOTH == S_IXOTH)
permissions += "x";
else
permissions += "-";
The string permission always comes out rwxrwxrwx. How do I properly determine the permissions on the file?