#include #include typedef enum { UNAUTHORIZED = 0B000000, READ = 0B000001, WRITE = 0B000010, EXECUTE = 0B000100, DELETE = 0B001000, CHANGE_PERMISSION = 0B010000, CHANGE_OWNER = 0B100000 } autorisationElementaire; typedef int compositionAutorisations; compositionAutorisations calculerCompositionAutorisations(autorisationElementaire r, autorisationElementaire w, autorisationElementaire x, autorisationElementaire d, autorisationElementaire p, autorisationElementaire o) { compositionAutorisations cmp = r | w | x | d | p | o; return cmp; } bool testerAutorisation(compositionAutorisations ca, autorisationElementaire ae) { return (ca & ae) == ae; } int main(void) { printf("%d %d %d %d %d %d %d\n",UNAUTHORIZED,READ,WRITE,EXECUTE,DELETE,CHANGE_PERMISSION,CHANGE_OWNER); compositionAutorisations jeu = calculerCompositionAutorisations(READ, UNAUTHORIZED, EXECUTE, DELETE, UNAUTHORIZED, UNAUTHORIZED); printf("Valeur du jeu d'aurorisations : %d\n", jeu); printf("Lecture : %d\n", testerAutorisation(jeu, READ)); printf("Ecriture : %d\n", testerAutorisation(jeu, WRITE)); return 0; }