zoukankan      html  css  js  c++  java
  • linux文件操作篇 (三) 文件状态和操作属性

    #include <sys/stat.h>
     
    int fstat(int fildes, struct stat *buf);
    获取文件信息 
    int lstat(const char* restrictpath, struct stat *restrictbuf);
    获取文件信息 
    int stat(const char* restrictpath, struct stat *restrictbuf);
    获取文件信息 
       



       
       
       



    int fstat(int fildes, struct stat *buf) //用于已经open的文件
    
    
    /* 二者可用于还未打开的文件,其中,如果是软连接文件, lstat描述的是链接本身,stat则是描述链接所指向的文件 */
    int lstat(const char *restrictpath, struct stat *restrictbuf);
    int stat(const char *restrictpath, struct stat *restrictbuf);
    struct stat *buf  //这是stat.h中的一个结构体,用于记录文件信息
       
       struct stat{                /* when _DARWIN_FEATURE_64_BIT_INODE is defined */
            dev_t          st_dev;           /* ID of device containing file 文件保存的设备*/
            mode_t         st_mode;          /* Mode of file (see below) 文件权限与文件类型信息*/
            nlink_t        st_nlink;         /* Number of hard links 该文件上硬链接的数量*/
            ino_t          st_ino;           /* File serial number 该文件的inode */
            uid_t          st_uid;           /* User ID of the file 该文件的用户id*/
            gid_t          st_gid;           /* Group ID of the file 该文件的组id*/
            dev_t          st_rdev;          /* Device ID */
            struct timespecst_atimespec;     /* time of last access 上次被访问的时间戳*/
            struct timespecst_mtimespec;     /* time of last data modification 上次被修改的时间戳*/
            struct timespecst_ctimespec;     /* time of last status change */
            struct timespecst_birthtimespec; /* time of file creation(birth) */
            off_t          st_size;          /* file size, in bytes */
            blkcnt_t       st_blocks;        /* blocks allocated for file */
            blksize_t      st_blksize;       /* optimal blocksize for I/O */
            uint32_t       st_flags;         /* user defined flags for file */
            uint32_t       st_gen;           /* file generation number */
            int32_t        st_lspare;        /* RESERVED: DO NOT USE! */
            int64_t        st_qspare[2];     /* RESERVED: DO NOT USE! */
        };
  • 相关阅读:
    Linux使用Public Key方式远程登录
    Linux编译安装Mariadb数据库
    Centos7环境搭建lnmp环境
    浅谈Java中的System.gc()的工作原理
    Eclipse快捷键大全(转载)
    java中的参数传递——值传递、引用传递
    Visual Studio 2017 安装后无法创建c++或MFC项目
    ubuntu sendmail配置发送邮件
    ubuntu11.0静态IP地址配置
    cin与cout详解
  • 原文地址:https://www.cnblogs.com/kmist/p/10632442.html
Copyright © 2011-2022 走看看