【发布时间】:2016-07-13 18:14:19
【问题描述】:
当我在命令行中输入ls -l 时,有时会在文件权限旁边出现@ 或+ 符号(顺便说一句,我在OS X 上),如下所示:
-rw-r-----@ 1 john staff 6731 Sep 28 01:10 mutations.txt
drwxr-xr-x+ 71 john staff 2414 Mar 25 18:16 ..
我知道如何使用stat 结构获取权限位,但我认为这些扩展权限值不存在。有人可以为我指出如何通过 C 或 POSIX API 获取这些值的正确方向吗?
编辑:
我尝试了以下方法:
#include <sys/types.h>
#include <sys/xattr.h>
#include <sys/types.h>
int main () {
char l[1024];
listxattr("/Users/john/desktop/mutations.txt", l, 1024, XATTR_SHOWCOMPRESSION);
printf("%s\n", l);
}
并得到输出:
com.apple.metadata:kMDItemWhereFroms
仍在尝试了解如何将其转换为 @ 或 +?
【问题讨论】:
-
另外,为了让您知道,您包含了两次
<sys/types.h>。不确定这是否是设计使然。
标签: c macos unix permissions xattr