• stat函数


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

    当文件是一个符号链接时,lstat返回的是该符号链接本身的信息,而stat返回的是该链接指向的文件的信息。

    struct stat
    {
        dev_t        st_dev;        //设备号码
        ino_t        st_ino;        //inode节点号
        mode_t        st_mode;        //文件对应的模式,文件,目录,sock,管道等等
        nlink_t        st_nlink;        //文件的连接数          软连接或硬链接
        uid_t        st_uid;        //文件所有者
        gid_t        st_gid;        //文件所有者对应的组
        dev_t        st_rdev;        //特殊设备号码
        off_t         st_size;        //普通文件,对应的文件字节数
        timestruc_t    st_atim;        //文件最后被访问的时间
        timestruc_t    st_mtim;        //文件内容最后被修改的时间
        timestruc_t    st_ctim;        //文件状态改变时间
        blksize_t        st_blksize;    //文件内容对应的块
        blkcnt_t         st_blocks;    //文件内容对应的块数量
        char         st_fstype[_ST_FSTYPSZ];
    };

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

                 

    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

    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_WGRP

    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(st_mode)

    是否为先进先出

    S_ISSOCK(st_mode)

    是否为socker

    若一般目录具有sticky位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或root来输出或改名,在linux中,最典型的就是/tmp目录了。

  • 相关阅读:
    样式
    样式表的类别、选择器和优先级
    随记
    框架
    表单元素
    HTLM内容容器标签和常用标签
    HTML5的意义、改变以及全局属性
    11月21日html基础
    感想 目标和展望
    C++结构体实例和类实例的初始化
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11599689.html
Copyright © 2020-2023  润新知