linux stat系统调用,获取文件信息。

原创 2015年07月08日 15:53:34

stat 函数原型:

int stat(const char *path, struct stat *buf);

struct stat 说明

struct stat {
        mode_t     st_mode;       //文件对应的模式,文件,目录等
        ino_t      st_ino;       //inode节点号
        dev_t      st_dev;        //设备号码
        dev_t      st_rdev;       //特殊设备号码
        nlink_t    st_nlink;      //文件的连接数
        uid_t      st_uid;        //文件所有者
        gid_t      st_gid;        //文件所有者对应的组
        off_t      st_size;       //普通文件,对应的文件字节数
        time_t     st_atime;      //文件最后被访问的时间
        time_t     st_mtime;      //文件内容最后被修改的时间
        time_t     st_ctime;      //文件状态改变时间
        blksize_t st_blksize;    //文件内容对应的块大小
        blkcnt_t   st_blocks;     //伟建内容对应的块数量
};

stat结构体中的st_mode 则定义了下列数种情况:

 S_IFMT   0170000    文件类型的位遮罩
    S_IFSOCK 0140000    scoket
    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_IWGRP 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 (s3e)        是否为先进先出
    S_ISSOCK (st_mode)   是否为socket

示例程序:
获取文件的大小。

int main(){

    struct stat m_stat;
    stat("./a.txt",&m_stat);

    printf("%ld\n",m_stat.st_size);
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

系统调用 stat(), fstat(), lstat() 函数

stat函数讲解 表头文件:    #include                      #include 定义函数:    int stat(const char *...
  • edonlii
  • edonlii
  • 2014年03月12日 15:21
  • 2064

系统调用,stat,fstat以及lstat函数:检查文件的属性

头文件:#include   #include 定义函数:int stat(const char * file_name, struct stat *buf); 函数说明:st...
  • edonlii
  • edonlii
  • 2014年03月12日 15:23
  • 1620

linux stat函数(获取文件详细信息)

本文转载自:http://www.ccoder.cn/article/84 函数原型 #include int stat(const char *restrict pathname, stru...
  • u011150719
  • u011150719
  • 2016年03月12日 14:07
  • 883

Linux系统编程之获取文件信息

利用系统调用stat()、lstat()以及fstat(),可获取与文件有关的信息,其中大部分提取自文件i节点。...
  • davidsky11
  • davidsky11
  • 2014年05月14日 20:13
  • 1223

Linux网络编程--获取文件状态信息fstat函数

/*使用stat获得文件的状态*/ #include #include #include int main(void) { struct stat st; if( -1 == stat...
  • u010193457
  • u010193457
  • 2015年08月20日 13:16
  • 1176

linux stat系统调用,获取文件信息。

stat 函数原型:int stat(const char *path, struct stat *buf);struct stat 说明struct stat { mode_t ...
  • u011641885
  • u011641885
  • 2015年07月08日 15:53
  • 1083

系统调用过程的理解

郑德伦 原创作品转载请注明出处 《Linux内核分析》MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一、 使用C和内嵌汇编方式完...
  • a363344923
  • a363344923
  • 2015年03月25日 17:13
  • 992

linux中用stat查看文件信息的三个时间的含义

stat xxx 后出现的三个文件信息含义 运行stat test.c 然后执行 cat test.c   读取文件打印出来 然后再次执行 stat test.c 可以看...
  • a1414345
  • a1414345
  • 2017年02月15日 11:42
  • 341

linux中目录的权限以及文件的stat用法

目录的权限:  r:可以读取该目录下的目录结构,可以查询该目录下的文件名,但不可进入该目录  w:目录写权限可以做如下事情,很重要,慎重对待。  ·新建新的文件/目录 ·删除已存在的文件与目录  ·...
  • zhang1308299607
  • zhang1308299607
  • 2017年03月22日 18:50
  • 899

我的代码,判断system系统调用

  • 2014年08月13日 19:30
  • 398B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux stat系统调用,获取文件信息。
举报原因:
原因补充:

(最多只允许输入30个字)