2017-06-03 39 views
0

我想知道setfmode()mode參數最終是由chmod()調用的。chmod中的模式參數?

當我打印出來並執行類似chmod +t test.txt的「33700」打印出來。當我做chmod +w test.txt「33252」被打印出來。

有沒有辦法看到使用這些數字設置哪些特定位?

回答

2

有關權限位的完整說明,請參閱FreeBSD手冊頁https://www.freebsd.org/doc/handbook/permissions.html。請注意,權限位的插圖採用八進制格式。

搜索引擎是你的朋友 - 我搜索「FreeBSD權限位」,並立即找到上述鏈接作爲第一個返回的結果。

從聊天:

「我試圖找出如果用戶在setfmode()我想我要位與,粘着位恆定模式變量設置粘滯位,這樣的話,檢查是否是等於粘位常數」

黏性位是八進制1000 - 見the FreeBSD chmod man page 在C寫號的八進制,用0之前的價值,所以假設你的模式值在一個變量命名爲mode,做(mode & 01000)。如果該值爲零,則粘性位未被設置,如果它不爲零(即,01000),則粘性位被置位。

馬克:「好我的支票似乎是工作 - if ((mode & S_ISTXT) == S_ISTXT)

+0

我指望了,但我不能找出爲什麼印有5位數字。你能幫我理解嗎? – MarksCode

+0

你如何打印權限位? – FKEinternet

+0

'printf(「%i」,mode)' – MarksCode