struct stat中的mode_t
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的更多相关文章
- golang struct 定义中json``解析说明
在代码学习过程中,发现struct定义中可以包含`json:"name"`的声明,所以在网上找了一些资料研究了一下 package main import ( "enco ...
- 【转】在Python的struct模块中进行数据格式转换的方法
这篇文章主要介绍了在Python的struct模块中进行数据格式转换的方法,文中还给出了C语言和Python语言的数据类型比较,需要的朋友可以参考下 Python是一门非常简洁的语言,对于数据类型的表 ...
- struct iphdr中的__LITTLE_ENDIAN_BITFIELD和__BIG_ENDIAN_BITFIELD
__LITTLE_ENDIAN_BITFIELD表示小端序,__BIG_ENDIAN_BITFIELD表示大端序. /usr/include/linux/ip.h中有一段代码定义了ip首部的结构体,例 ...
- python struct.pack中的对齐字节问题
最近测试涉及到了序列字节化相关问题,碰到一个头疼的问题 buff = struct.pack("3s","B00") print repr(buff) 输 ...
- struct streaming中的监听器StreamingQueryListener
在struct streaming提供了一个类,用来监听流的启动.停止.状态更新 StreamingQueryListener 实例化:StreamingQueryListener 后需要实现3个函数 ...
- struct platform_device中的id成员
include/linux/platform_device.h #define PLATFORM_DEVID_NONE (-1) #define PLATFORM_DEVID_AUTO (-2) dr ...
- Python中对字节流/二进制流的操作:struct
前言 前段时间使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块.查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一 ...
- 关于C中struct和union长度的详解
这几天看<代码大全>中的第十三章---不常见的数据类型,里面讲解到了C语言中的struct以及对指针的解释,联想到以前看过相关的关于C语言中stuct长度的文章,只是现在有些淡忘了,因此今 ...
- 内核中用于数据接收的结构体struct msghdr(转)
内核中用于数据接收的结构体struct msghdr(转) 我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,pin ...
随机推荐
- 时间js
function DateUtil(){ this.url = ""; this.op={ partten:{mdy:"m/d/y",ymd:"y/m ...
- Yii框架的一些系统函数
Yii::app()->request->baseUrl 返回app所在目录,可以用来挂模板. var_dump(Yii::app()->db); 可以用来测试数据库配置成功否
- maven help:system
lifecycle:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html bindings:ht ...
- <转>CentOS 7 安装配置 NFS
CentOS 7 安装配置 NFS 环境 nps 192.168.1.97 client 192.168.1.98 一.yum 安装 yum -y install nfs-utils rpcbind ...
- (转)编写 DockerFile
这几天在研究怎样制作docker image. 其中使用dockerfile是一种可记录制作image的过程的并且是容易重复使用的一种方式.在园子里看到了一篇好文,于是分享到这里~~ 原文链接: ht ...
- Cocos2D中的内部函数
virtual bool isVisible(); // 是否可见 virtual void setVisible(bool visible); // 设置是否可见 boo ...
- 第五章 bean的加载(待续)
·············
- linux安装xgboost
在学校服务器上安装xgboost,事先我已经安装了anaconda,但是因为师兄已经装了python所以没加入到path. 网上的方法一般都要编译,另外官方的下载方法要联网..总之出了一堆错,最终还是 ...
- 不用jquery实现tab页切换,刷新,后退,前进状态自动维护 很好用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery中选中复选框1.8之前与1.8之后的区别
在jquery 1.8.x中的版本,我们对于checkbox的选中与不选中操作如下: 判断是否选中 $('#checkbox').prop('checked') 设置选中与不选中状态: $('#che ...