Dringend: umask vs chmod in C

Danny4

Danny4

Aktives Mitglied
Thread Starter
Dabei seit
07.11.2002
Beiträge
135
Reaktionspunkte
0
Hallo, bis zu einer Prüfung am Montag hoffe ich auf Hilfe.

Das Prinzip von chmod & umask ist mir eugentlich klar. 777 - 022 = 755. Nun habe ich folgenden C-Quelltext:
Code:
#include <stdio.h>
int main()
{
	umask(022);
	int fd1 = creat("a.txt", 0731);
	
	umask(156);
	int fd2 = creat("b.txt", 0731);
}

Nach dem Compilieren und Ausführen habe ich folgende Rechte auf den Dateien:
a.txt: -rwx--x--x
b.txt: -r-x-----x

Das sind für a.txt 711 und für b.txt 501

731 ist ja rwx-wx--x.

Mit der 711 gehe ich noch mit, aber wieso kommt für b.txt 501 raus?

Code:
731: rwx -wx --x
022: 000 010 010
----------------
711: rwx --x --x

aber:
731: rwx -wx --x
156: 001 101 110
----------------
621: rw- -w- --x ???

Vielleicht habe ich ja nur einen Balken vorm Kopf. Hoffe das mir jemand schnell helfen kann.
 
Hat sich erledigt. Vor die umask-Werte muss noch eine "0" damit es der Compiler auch als Oktalzahl interpretiert.
 
Zurück
Oben Unten