我想知道setfmode()
的mode
参数最终是由chmod()
调用的。chmod中的模式参数?
当我打印出来并执行类似chmod +t test.txt
的“33700”打印出来。当我做chmod +w test.txt
“33252”被打印出来。
有没有办法看到使用这些数字设置哪些特定位?
我想知道setfmode()
的mode
参数最终是由chmod()
调用的。chmod中的模式参数?
当我打印出来并执行类似chmod +t test.txt
的“33700”打印出来。当我做chmod +w test.txt
“33252”被打印出来。
有没有办法看到使用这些数字设置哪些特定位?
有关权限位的完整说明,请参阅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)
”
我指望了,但我不能找出为什么印有5位数字。你能帮我理解吗? – MarksCode
你如何打印权限位? – FKEinternet
'printf(“%i”,mode)' – MarksCode