zoukankan      html  css  js  c++  java
  • #include <sys/stat.h>的作用

    #include <sys/stat.h>

    文件状态,

    是unix/linux系统定义文件状态所在的伪标准头文件。

    含有类型与函数:

                 dev_t     st_dev     Device ID of device containing file.
                  ino_t     st_ino     File serial number.
                  mode_t    st_mode    Mode of file (see below).
                  nlink_t   st_nlink   Number of hard links to the file.
                  uid_t     st_uid     User ID of file.
                  gid_t     st_gid     Group ID of file.
                  dev_t     st_rdev    Device ID (if file is character or block special).
                  off_t     st_size    For regular files, the file size in bytes.
                                       For symbolic links, the length in bytes of the
                                       pathname contained in the symbolic link.

                                       For a shared memory object, the length in bytes.

                                       For a typed memory object, the length in bytes.

                                       For other file types, the use of this field is
                                       unspecified.
                  time_t    st_atime   Time of last access.
                  time_t    st_mtime   Time of last data modification.
                  time_t    st_ctime   Time of last status change.

                  int    chmod(const char *, mode_t);

                  int    fchmod(int, mode_t);
                  int    fstat(int, struct stat *);
                  int    lstat(const char *restrict, struct stat *restrict);
                  int    mkdir(const char *, mode_t);
                  int    mkfifo(const char *, mode_t);
                  int    mknod(const char *, mode_t, dev_t);
                  int    stat(const char *restrict, struct stat *restrict);
                  mode_t umask(mode_t);

    使用stat函数最多的可能是ls-l命令,用其可以获得有关一个文件的所有信息。

    一般头文件在/usr/include下面,这里是标准C程序头文件,如果你的头文件前加了 <sys/*>,那说明这是系统调用函数头文件,其在/usr/include/sys下面。

    函数都是获取文件(普通文件,目录,管道,socket,字符,块()的属性。函数原型#include <sys/stat.h>

    int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。
    int fstat(int filedes, struct stat *buf);通过文件描述符获取文件对应的属性。
    int lstat(const char *restrict pathname, struct stat *restrict buf);连接文件描述命,获取文件属性。
    文件对应的属性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;     //伟建内容对应的块数量
          };

    示例:

    #include <sys/stat.h>
    #include <unistd.h>
    #include <stdio.h>

    int main() {
        struct stat buf;
        stat("/etc/hosts", &buf);
        printf("/etc/hosts file size = %d ", buf.st_size);
    }

  • 相关阅读:
    ubuntu下cmake自动化编译的一个例子
    KL变换和PCA的数学推导
    tensorflow c++ API加载.pb模型文件并预测图片
    tensorflow c++接口的编译安装与一些问题记录
    深度增强学习--总结下吧
    深度增强学习--DPPO
    深度增强学习--DDPG
    深度增强学习--A3C
    tomcat远程调试
    springboot问题记录
  • 原文地址:https://www.cnblogs.com/aboutblank/p/3617196.html
Copyright © 2011-2022 走看看