retirer permissions écriture

Le
N Quérel
Bonjour,

mon truc est tout simple.
J'ai un fichier.
Je veux retirer les droits en permissions pour tout le monde.

Par exemple :

ancienne permission : 111110110
nouvelle permission : 101101101

la table de vérité est :

0 0 -> 0
0 1 -> 0
1 0 -> 1
1 1 -> 0

Mais avec les AND, OR, XOR et compangie, je n'arrive pas à la faire.

J'ai besoin d'aide.
merci
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Miguel
Le #734843
si tu prends a ton première proposition et b ta seconde, je crois que
a ET (NON b)
fait l'affaire...

"N Quérel" news:4092c5cc$0$21087$
Bonjour,

mon truc est tout simple.
J'ai un fichier.
Je veux retirer les droits en permissions pour tout le monde.

Par exemple :

ancienne permission : 111110110
nouvelle permission : 101101101

la table de vérité est :

0 0 -> 0
0 1 -> 0
1 0 -> 1
1 1 -> 0

Mais avec les AND, OR, XOR et compangie, je n'arrive pas à la faire.

J'ai besoin d'aide.
merci


N Quérel
Le #734840
"Miguel" news:4092d070$0$417$:

si tu prends a ton première proposition et b ta seconde, je crois que
a ET (NON b)
fait l'affaire...



Merci.
Mais avec un peu de relax, la solution m'était venue.

Horst Kraemer
Le #734838
On 30 Apr 2004 21:31:58 GMT, "N Quérel"

Bonjour,

mon truc est tout simple.
J'ai un fichier.
Je veux retirer les droits en permissions pour tout le monde.

Par exemple :

ancienne permission : 111110110
nouvelle permission : 101101101


Du construis la masque pour "write" en octal

m_write = 0222; /* 010010010

mais en général tu ne veux pas retirer write pour root, alors plutot

m_write = 022; /* 000010010 */

Alors pour retirer "write" de la permission p_old

p_new = p_old & ~m_write

Règles générales

ajouter m : p_new = p_old | m /* p_old OR m */
retirer m : p_new = p_old & ~m /* p_old AND NOT m */


l'opération a AND NOT b annulle dans a tous les bits qui sont 1 dans
b.

--
Horst

Publicité
Poster une réponse
Anonyme