UNIX/Linux系统下stat/fstat/lstat函数

stat/fstat/lstat
	#include <sys/stat.h>
	功能:用来获取文件属性,返回值:成功返回0,失败返回-1
	int stat(const char *path, struct stat *buf);
	path:需要文件路径
    int fstat(int fd, struct stat *buf);
    fd:需要打开后的文件描述符
    int lstat(const char *path, struct stat *buf);
   	stat/fstat会跟踪链接目标,而lstat不跟踪链接目标。
   	
   	struct stat {
		dev_t st_dev; // 设备ID
		ino_t st_ino; // 节点号
        mode_t st_mode; // 文件类型和权限
        nlink_t st_nlink; // 硬链接数
        uid_t st_uid; // 用户ID
        gid_t st_gid; // 组ID
        dev_t st_rdev; // 特殊设备ID
        off_t st_size; // 文件的总字节数
        blksize_t st_blksize; // IO块数
        blkcnt_t st_blocks; // 占用块(512字节)数
        time_t st_atime; // 最后访问时间
        time_t st_mtime; // 最后修改时间
        time_t st_ctime; // 最后文件属性修改时间
   	
   	S_ISREG(m)  测试是否是标准文件
	S_ISDIR(m)  目录
	S_ISCHR(m)  字符设备文件
	S_ISBLK(m)  块设备文件
	S_ISFIFO(m) 管道文件
	S_ISLNK(m)  软链接文件
	S_ISSOCK(m) socket文件
	
	
	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    0004000   set UID bit
    S_ISGID    0002000   set-group-ID bit (see below)
    S_ISVTX    0001000   sticky bit (see below)
    
    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     其它用户的执行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值