Witam. Na zajęciach z Podstaw systemów operacyjnych pisaliśmy mały programik korzystający głównie z funkcji stat. Częścią zadania było wyświetlenie uprawnień danego pliku. W internecie widziałem takie rozwiązanie i postanowiłem go użyć:
printf("Atrybuty dostepu: ");
printf((statbuf.st_mode & S_IRUSR) ? "r" : "-");
printf((statbuf.st_mode & S_IWUSR) ? "w" : "-");
printf((statbuf.st_mode & S_IXUSR) ? "x" : "-");
printf((statbuf.st_mode & S_IRGRP) ? "r" : "-");
printf((statbuf.st_mode & S_IWGRP) ? "w" : "-");
printf((statbuf.st_mode & S_IXGRP) ? "x" : "-");
printf((statbuf.st_mode & S_IROTH) ? "r" : "-");
printf((statbuf.st_mode & S_IWOTH) ? "w" : "-");
printf((statbuf.st_mode & S_IXOTH) ? "x\n" : "-\n");
Wiem mniej więcej co robi dany kod, jednakże nie potrafię tego wyjaśnić od strony technicznej, a muszę to zrobić na najbliższych zajęciach. Wiem, że można te uprawnienia wyświetlić również w taki sposób
printf("Atrybuty dostepu: %o\n", statbuf.st_mode);
i że sprawdzane są dane bity/bajty(?), ale prowadzący kazał mi to dosłownie rozrysować na kartce i nie bardzo wiem jak dokładnie narysować mu działanie tej operacji bitowej