2017-06-03 101 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