stat函数
int lstat(const char *path,struct stat*buf)
当文件是一个符号链接时,lstat返回的是该符号链接本身的信息,而stat返回的是该链接指向的文件的信息。
struct stat
{
dev_t st_dev; //设备号码
ino_t st_ino; //inode节点号
mode_t st_mode; //文件对应的模式,文件,目录,sock,管道等等
nlink_t st_nlink; //文件的连接数 软连接或硬链接
uid_t st_uid; //文件所有者
gid_t st_gid; //文件所有者对应的组
dev_t st_rdev; //特殊设备号码
off_t st_size; //普通文件,对应的文件字节数
timestruc_t st_atim; //文件最后被访问的时间
timestruc_t st_mtim; //文件内容最后被修改的时间
timestruc_t st_ctim; //文件状态改变时间
blksize_t st_blksize; //文件内容对应的块
blkcnt_t st_blocks; //文件内容对应的块数量
char st_fstype[_ST_FSTYPSZ];
};
stat结构体中的st_mode则定义了下列数种情况
S_IFMT |
0170000 |
文件类型的位遮罩 |
S_IFSOCK |
0140000 |
socket |
S_IFLNK |
0120000 |
符号链接 |
S_IFREG |
0100000 |
一般文件 |
S_IFBLK |
0060000 |
区块装置 |
S_IFDIR |
0040000 |
目录 |
S_IFCHR |
0020000 |
字符装置 |
S_IFIFO |
0010000 |
先进先出 |
S_ISUID |
04000 |
文件的(set user-id on execution)位 |
S_ISGID |
02000 |
文件的(set group-id on execution)位 |
S_ISVTX |
01000 |
文件的sticky位 |
S_IRUSR(S_IREAD) |
00400 |
文件所有者具有可读权限 |
S_IWUSR(S_IWRITE) |
00200 |
文件所有者具有可写权限 |
S_IXUSR(S_IEXEC) |
00100 |
文件所有者具有可执行权限 |
S_IRGRP |
00040 |
用户组具有可读权限 |
S_WGRP |
00020 |
用户组具有可写权限 |
S_IXGRP |
00010 |
用户组具有可执行权限 |
S_IROTH |
00004 |
其他用户具有可读权限 |
S_IWOTH |
00002 |
其他用户具有可写权限 |
S_IXOTH |
00001 |
其他用户具有可执行权限 |
上述文件类型在POSIX中定义了检查这些类型的宏定义
S_ISLNK (st_mode) |
判断是否为符号链接 |
S_ISREG (st_mode) |
判断是否为一般文件 |
S_ISDIR(st_mode) |
是否为目录 |
S_ISCHR(st_mode) |
是否为字符装置文件 |
S_ISBLK(st_mode) |
是否为先进先出 |
S_ISSOCK(st_mode) |
是否为socker |
若一般目录具有sticky位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或root来输出或改名,在linux中,最典型的就是/tmp目录了。
最新文章
- Java——其他容器
- android: adapter getView(position==0) was invoked many times.
- JDBC中prepareStatement 和Statement 的区别
- ASP.NET之Ajax系列(三)
- Android 者开发如何选择测试机列表
- php面向对象的特性:OOP的继承
- nginx配置location [=|~|~*|^~] /uri/ { … }用法
- LoadRunner监控Windows和Linux常见问题
- 循环结构中break、continue、return和exit的区别
- js 中的 exec( )方法
- javascript 深入浅出 (未完成4-17)
- 牛掰啊,github+svn+FB进行项目开发
- Netty之二进制文件传输
- 在golang中使用leveldb
- Apache Flink Quickstart
- 自学华为IoT物联网_10 IoT联接管理平台配置及开发实验1
- 阿里巴巴Java开发规范---个人总结
- JUC集合之 CopyOnWriteArraySet
- A Tool to Clip Images
- 进程间通信IPC -- 管道, 队列