• 正文
  • 相关推荐
申请入驻 产业图谱

飞凌嵌入式ElfBoard-获取文件的状态信息之文件权限

12/16 11:28
184
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

前面介绍的struct stat结构体中st_mode字段记录了文件的类型和文件的访问权限。因为Linux系统是由文件构成的,所以这里的文件权限适用于Linux系统所有的文件,包括目录、文件、设备、软连接等等,这里就不一一列举了。在这些权限中分为普通权限和特殊权限。

这里讲的普通权限就是前面的st_mode字段中所说的文件所有者权限、同组用户权限和其他用户权限,下面来回忆一下这些权限有什么内容:

文件权限 权限宏 含义
文件所有者权限(U) S_IRUSR 读权限(r)
S_IWUSR 写权限(w)
S_IXUSR 执行权限(x)
同组用户权限(G) S_IRGRP 读权限(r)
S_IWGRP 写权限(w)
S_IXGRP 执行权限(x)
其他用户权限(O) S_IROTH 读权限(r)
S_IWOTH 写权限(w)
S_IXOTH 执行权限(x)

知道了上面的内容以后先看一下系统中是如何对这些权限描述的。

$ ls -l

total 36

-rwxr-xr-x 1  elf   elf    16176  8月  22 16:30  chown_test

-rw-r--r-- 1   elf   elf    440    8月  22 16:30  chown_test.c

-rwxr-xr-x 1  root  root  16272  8月  22 16:28  lstat_test

以chown_test为例,可以看到他前面的权限为-rwxr-xr-x,这里咱们先省略左边第一个“-”,从第二个开始每三个一组,分别对应的“rwx”文件所有者有读写执行权限、“r-x”同组用户有读和执行权限、“r-x”其他用户有读和执行权限。

下面说说左边第一个“-”是什么意思。

-:表示这是一个常规文件(普通文件),如文本文件、可执行文件等。

b:表示这是一个块设备文件,如硬盘、光驱等。

c:表示这是一个字符设备文件,如键盘、鼠标等。

l:表示这是一个符号链接(软连接)。

s:表示这是一个套接字文件(socket)。

p:表示这是一个管道文件(FIFO)

所以左边第一个“-”代表为可执行文件。

相关推荐