PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : st_mode von stat in rwx format bringen



juzar
11-05-2003, 10:10
hallo,

wenn ich stat auf einer/m Datei/Verzeichnis aufrufe kann ich mir ein int geben lassen,
in dem die dateizugriffsrechte codiert sind (a la 0777)
gibt es irgendeine kleine standardfunktion um das int in dieses klassische
-rwxrwxrwx format zu bringen?

gruß

tkortkamp
11-05-2003, 11:26
Hi!

Ich habe da mal was gemacht in C++:


#include <iostream>
#include <string>
#include <sys/stat.h>

std::string convert(mode_t mode)
{
std::string str;

if(mode & S_IFDIR)
str += 'd';
else
str += '-';
if(mode & S_IRUSR)
str += 'r';
else
str += '-';
if(mode & S_IWUSR)
str += 'w';
else
str += '-';
if(mode & S_IXUSR)
str += 'x';
else
str += '-';
if(mode & S_IRGRP)
str += 'r';
else
str += '-';
if(mode & S_IWGRP)
str += 'w';
else
str += '-';
if(mode & S_IXGRP)
str += 'x';
else
str += '-';
if(mode & S_IROTH)
str += 'r';
else
str += '-';
if(mode & S_IWOTH)
str += 'w';
else
str += '-';
if(mode & S_IXOTH)
str += 'x';
else
str += '-';


return str;
}

int main(int argc, char **argv)
{
struct stat buf;

stat("test", &buf);

std::cout << convert(buf.st_mode) << std::endl;

return 0;
}


Informationen zu den S_I****-Sachen stehen in der man-Page zu stat (man 2 stat)

Hoffe das hilft dir :D

c ya,
Tobias