mode_t是无符号整形。它由

S_IRUSR

S_IWUSR

S_IXUSR

S_IRGRP

S_IWGRP

S_IXGRP

S_IROTH

S_IWOTH

S_IXOTH几个按位或而的来;所得到的数为8进制

    S_IFMT           文件类型的位遮罩
    S_IFSOCK         socket
    S_IFLNK          符号链接(symbolic link)
    S_IFREG          一般文件
    S_IFBLK          区块装置(block device)
    S_IFDIR          目录
    S_IFCHR          字符装置(character device)
    S_IFIFO          先进先出(fifo)
    S_ISUID          文件的(set user-id on execution)位
    S_ISGID          文件的(set group-id on execution)位
    S_ISVTX          文件的sticky位
    S_IRWXU            文件所有者的遮罩值(即所有权限值)
    S_IRUSR            文件所有者具可读取权限
    S_IWUSR            文件所有者具可写入权限
    S_IXUSR            文件所有者具可执行权限
    S_IRWXG            用户组的遮罩值(即所有权限值)
    S_IRGRP            用户组具可读取权限
    S_IWGRP            用户组具可写入权限
    S_IXGRP            用户组具可执行权限
    S_IRWXO            其他用户的遮罩值(即所有权限值)
    S_IROTH            其他用户具可读取权限
    S_IWOTH            其他用户具可写入权限
    S_IXOTH            其他用户具可执行权限
    摘自《Linux C 函数库参考手册》  

图中为几个标志位在C中的取值,S_IRUSR为00400,S_IWUSR为00200,在此处,按位或后的值为00600;按位或时是右对齐

#include<stdio.h>
#include<unistd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>

int main()
{
    struct stat bf;
    int fd;
    fd=open("/home",O_RDONLY);
    fstat(fd,&bf);
    printf("/home %o\n",bf.st_mode);
    exit();
}

在本人电脑中,目录/home的权限为-rwxr-xr-x,即为八进制755,运行程序,以%o八进制输出st_mode,最终得到40755,对照上面标志位的值,结果是正确的,第一位的4是说明当前文件为目录,对应的标志位值为S_IFDIR     0040000  目录

struct stat中的mode_t的更多相关文章

  1. golang struct 定义中json``解析说明

    在代码学习过程中,发现struct定义中可以包含`json:"name"`的声明,所以在网上找了一些资料研究了一下 package main import ( "enco ...

  2. 【转】在Python的struct模块中进行数据格式转换的方法

    这篇文章主要介绍了在Python的struct模块中进行数据格式转换的方法,文中还给出了C语言和Python语言的数据类型比较,需要的朋友可以参考下 Python是一门非常简洁的语言,对于数据类型的表 ...

  3. struct iphdr中的__LITTLE_ENDIAN_BITFIELD和__BIG_ENDIAN_BITFIELD

    __LITTLE_ENDIAN_BITFIELD表示小端序,__BIG_ENDIAN_BITFIELD表示大端序. /usr/include/linux/ip.h中有一段代码定义了ip首部的结构体,例 ...

  4. python struct.pack中的对齐字节问题

    最近测试涉及到了序列字节化相关问题,碰到一个头疼的问题 buff = struct.pack("3s","B00")    print repr(buff) 输 ...

  5. struct streaming中的监听器StreamingQueryListener

    在struct streaming提供了一个类,用来监听流的启动.停止.状态更新 StreamingQueryListener 实例化:StreamingQueryListener 后需要实现3个函数 ...

  6. struct platform_device中的id成员

    include/linux/platform_device.h #define PLATFORM_DEVID_NONE (-1) #define PLATFORM_DEVID_AUTO (-2) dr ...

  7. Python中对字节流/二进制流的操作:struct

    前言 前段时间使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块.查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一 ...

  8. 关于C中struct和union长度的详解

    这几天看<代码大全>中的第十三章---不常见的数据类型,里面讲解到了C语言中的struct以及对指针的解释,联想到以前看过相关的关于C语言中stuct长度的文章,只是现在有些淡忘了,因此今 ...

  9. 内核中用于数据接收的结构体struct msghdr(转)

    内核中用于数据接收的结构体struct msghdr(转) 我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,pin ...

随机推荐

  1. 学习FPGA需要做哪些

    有些人比较差,做了一些介绍,有误导成分.有些人水平太高,介绍的很好,但是很多人依旧听不懂,得到的肯定很少.学习FPGA,在不同层次的人明显有不同的答案. 熟悉硬件描述语言语法,不需要什么都会,但是要记 ...

  2. CentOS7 日期时间设置

    1.设置系统时间为中国时区并启用NTP同步 yum install ntp //安装ntp服务 systemctl enable ntpd //开机启动服务 systemctl start ntpd ...

  3. php中的list方法

    list 栗子一: <?php $info = array('coffee', 'brown', 'caffeine'); // 列出所有变量 list($drink, $color, $pow ...

  4. python开发函数进阶:命名空间,作用域,函数的本质,闭包,作用域方法(globales)

    一,命名空间 #局部命名空间#全局命名空间#内置命名空间 #三者的顺序#加载顺序       内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程 ...

  5. 小记一次mysql启动失败没有日志的处理

    本来mysql好的,之前清理了一次tmp下的东西,mysql在查询的时候提示: Can't create/write to file '/tmp/ib0n3frL 然后停止启动: [root@sevc ...

  6. leetcode773

    使用两种语言实现,先贴C++的 class Solution { public: vector<vector<int>> floodFill(vector<vector& ...

  7. 每天一个Linux命令 - 【chkconfig】

    [命令]:chkonconfig [语法]:chkconfig [选项] [功能介绍]:chkconfig 命令是Redhat兼容的Linux发行版中的系统服务管理工具,它可以查询和更新不同的运行等一 ...

  8. webRTC peerconnection_client demo创建VS工程

    编译了webRTC Windows源码之后,想使用编译出来的库写一个demo出来,但是又不知到怎么下手.就想通过源码中带的示例peerconnection_client和peerconnection_ ...

  9. SpringMVC+springSecurity+flexPaper 配置--类似百度文库在线预览

    背景:现在项目需要做一个类似百度文库的在线预览功能,在网上找了下很多人推荐使用FlexPaper,所以今天尝试学习了FlexPaper顺便集成到现有的框架中 由于网上目前的说的都不是很详细,所以现在记 ...

  10. IIS设置Access-Control-Allow-Origin

    打开iis,找到“HTTP响应标头”点进去, 在右侧可以看到添加,然后添加如下标头即可Access-Control-Allow-Headers:Content-Type, api_key, Autho ...