Eine vollständige Beschreibung der Berechtigungsbits finden Sie auf der FreeBSD-Handbuchseite unter https://www.freebsd.org/doc/handbook/permissions.html. Beachten Sie, dass die Abbildungen der Berechtigungsbits im Oktalformat sind.
Suchmaschinen sind deine Freunde - ich suchte nach "FreeBSD Erlaubnisbits" und fand sofort den obigen Link als das erste zurückgegebene Ergebnis.
Von Chat:
„Ich versuche, wenn der Benutzer die Sticky-Bit-Einstellung ist zu erfahren, so in setfmode() Ich denke, ich werde bitweise und der Modus-Variable mit der Sticky-Bit-Konstante, dann überprüfen, ob das das sticky-Bit-konstante“
Das sticky-Bit ist oktal 1000
gleich - siehe the FreeBSD chmod
man page Um Zahlen in oktal in C zu schreiben, setzen Sie vor den Wert mit einem 0
, so vorausgesetzt, Ihr Moduswert wird in einer variablen namens mode
, tun (mode & 01000)
. Wenn dieser Wert Null ist, wird das Sticky-Bit nicht gesetzt, wenn es nicht Null ist (d. H. 01000
), wird das Sticky-Bit gesetzt.
Mark: „Ok mein Scheck scheint zu funktionieren - if ((mode & S_ISTXT) == S_ISTXT)
“
ich aufblickte, aber ich kann nicht herausfinden, warum eine 5-stellige Nummer gedruckt wird. Kannst du mir bitte helfen zu verstehen? – MarksCode
Wie drucken Sie die Berechtigungsbits? – FKEinternet
'printf ("% i ", Modus)' – MarksCode