Linux---stat函数以及自己实现stat
来源:互联网 发布:淘宝海运到美国 编辑:程序博客网 时间:2024/05/21 14:50
St_mode函数S_IFMT 0170000 文件类型的位S_IFSOCK 0140000 socketS_IFLNK 0120000 符号链接(symbolic link)S_IFREG 0100000 一般文件S_IFBLK 0060000 区块装置(block device)S_IFDIR 0040000 目录S_IFCHR 0020000 字符装置(character device)S_IFIFO 0010000 先进先出(fifo)S_ISUID 0004000 文件的(set user-id on execution)位S_ISGID 0002000 文件的(set group-id on execution)位S_ISVTX 0001000 文件的sticky位S_IRWXU 00700 文件所有者的遮罩值(即所有权限值)S_IRUSR 00400 文件所有者具可读取权限S_IWUSR 00200 文件所有者具可写入权限S_IXUSR 00100 文件所有者具可执行权限S_IRWXG 00070 用户组的遮罩值(即所有权限值)S_IRGRP 00040 用户组具可读取权限S_IWGRP 00020 用户组具可写入权限S_IXGRP 00010 用户组具可执行权限S_IRWXO 00007 其他用户的遮罩值(即所有权限值)S_IROTH 00004 其他用户具可读取权限S_IWOTH 00002 其他用户具可写入权限S_IXOTH 00001 其他用户具可执行权限摘自《Linux C 函数库参考手册》
返回值:成功返回0,失败返回-1.
一旦给出pathname,stat函数将返回与此命名文件有关的信息结构,比如struct stat *statbuf;
文件属性:
/*************************************************************************> File Name: my_chmod.c P162> Author: > Mail: > Created Time: 2017年07月14日 星期五 15时42分34秒 ************************************************************************/#include<stdio.h>#include<time.h>#include<sys/stat.h>#include<unistd.h>#include<sys/types.h>#include<errno.h>#include<stdlib.h>int main(int argc, char **argv){ struct stat buf; /*检查参数个数*/ if(argc!=2) { perror("Usage:my_stat <filename>\n"); exit(1); } /*获取文件属性*/ if( stat(argv[1], &buf) ==-1 ) { perror("stat:"); exit(1); } /*打印文件属性*/ printf("device is: %d\n",buf.st_dev);//文件设备编号 printf("inode is : %d\n",buf.st_ino);//文件i节点标号 printf("mode is: %o\n",buf.st_mode);//文件类型与存取权限 printf("number of hard links is: %d\n",buf.st_nlink);//硬链接数目 printf("user ID of owner is: %d\n",buf.st_uid);//用户所有者的用户id printf("group ID of owner is: %d\n",buf.st_gid);//用户所有者组id printf("device type (if inode device )is: %d\n",buf.st_rdev);//若为设备文件则为设备编号 printf("total size ,in bytes is: %d\n",buf.st_size);//文件大小,以字节计算 printf("blocksize for filesystem I/O is: %d\n",buf.st_blksize);//文件系统IO缓冲区大小 printf("number of blocks allocated is: %d\n",buf.st_blocks);//占有文件区块个数,一般一个区块大小通常512字节 printf("time of lasst access is: %s",ctime(&buf.st_atime));//文件最近一次被访问时间 printf("time of last modification is: %s",ctime(&buf.st_mtime));//最后一次被修改的时间 printf("time of last chage is: %s",ctime(&buf.st_ctime));//最近一次被更改时间 return 0;}
阅读全文
0 0
- Linux---stat函数以及自己实现stat
- linux stat函数讲解
- linux stat函数讲解
- Linux stat函数讲解
- Linux stat函数讲解
- Linux stat函数讲解
- linux stat函数讲解
- Linux stat函数讲解
- Linux stat函数讲解
- linux stat函数讲解
- linux stat 函数讲解
- linux stat函数讲解
- Linux stat函数讲解
- Linux stat函数讲解
- linux stat函数讲解
- linux stat函数讲解
- linux stat函数讲解
- Linux stat函数讲解
- Arrays.asList(T...a)的使用问题
- MTK的充电方案—PMIC充电
- AC自动机
- 统计学习方法笔记, 第四章,朴素贝叶斯python实现
- mybatis-入门案例
- Linux---stat函数以及自己实现stat
- MyBatis的坑(Parameter 'XXX' not found)
- POJ 1458 Common Subsequence(最长公共子序列模版题)
- AtOffer笔记
- 能否向函数传递一个数组?
- 在idea里,点击浏览器图标没反应,解决方案
- char 字符型
- Linux 常用基本命令 压缩 解压缩 tar
- JS和JSP的区别