stat函数百度百科_strel函数

stat函数百度百科_strel函数stat函数的简单使用stat函数是用来获取文件的各种属性的一个linux下的常用API函数。函数原型为intstat(constchar*path,structstat*buf);stat定义如下:structstat{dev_tst_dev;//文件的设备编号ino_tst_ino;//节点mode_tst_m…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

stat 函数的简单使用

stat 函数是用来获取文件的各种属性的一个linux下的常用API函数。
函数原型为int stat(const char* path,struct stat* buf);
stat定义如下:

struct stat {
    dev_t   st_dev; //文件的设备编号
    ino_t   st_ino; //节点
    mode_t  st_mode;//文件的类型和存取的权限
    nlink_t st_nlink;//连接到该文件的硬链接数目,刚建立的文件值为1
    uid_t   st_uid;//用户的ID
    gid_t   st_gid;//组ID
    dev_t   st_rdev;//(设备类型)若此文件为设备文件,则其为设备的编号
    off_t   st_size;//文件字节数(文件大小)
    blksize_t   st_blksize;//块大小(文件系统的I/O缓存区大小)
    blkcnt_t    st_blocks;//块数
    time_t      st_atime;//最后一次访问时间
    time_t      st_mtime;//最后一次修改时间
    time_t      st_ctime;//最后一次改变时间(指属性)
};

st_mode 的定义 –16位整数

0-2--其他人权限(8进制)
S_IROTH  00004 读权限
S_IWOTH  00002 写权限
S_IXOTH  00001 执行权限
S_IRWXO  00007 掩码

3-5--所属组权限
S_IRGRP  00040 读权限
S_IWGRP  00020 写权限
S_IXGRP  00010 执行权限
S_IRWXG  00070 掩码

6-8--文件所有者权限
S_IRUSR  00400  读权限
S_IWUSR  00200  写权限
S_IXUSR  00100  执行权限
S_IRWXU  00700  掩码


12-15--文件类型
S_IFSOCK 0140000 套接字
S_IFLNK  0120000 符号链接(软连接)
S_IFREG  0100000 普通文件
S_IFBLK  0060000 块设备
S_IFDIR  0040000 目录
S_IFCHR  0020000 字符设备
S_IFIFO  0010000 管道

S_IFMT 掩码,用来过滤文件类型

statdemo.c

#include <stdio.h>
#include <stdlib.h>
#include <pwd.h>
#include <grp.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <sys/sysmacros.h>

int main(int argc,char* argv[])
{
        struct stat st;
        if(argc != 2)
            {
                fprintf(stderr,"Usage: %s <pathname>\n",argv[0]);
            exit(EXIT_FAILURE);
        }
    if(stat(argv[1],&st) == -1)
        {
            perror("stat");
            exit(EXIT_FAILURE);
        }

    printf("主设备号为:%lx,次设备号为%lx\n",(long) major(st.st_dev)),(long) minor(st.st_dev);

           printf("文件类型为:");

    switch(st.st_mode & S_IFMT) {
            case S_IFBLK: printf("设备文件\n");     break;
            case S_IFCHR: printf("字符设备\n");     break;
            case S_IFDIR: printf("目录\n");         break;
            case S_IFIFO: printf("管道文件\n");     break;
            case S_IFLNK: printf("软连接文件\n");   break;
            case S_IFREG: printf("普通文件\n");     break;
            case S_IFSOCK: printf("套接字文件\n");  break;
            default: printf("未知文件\n");          break;
    }

    printf("节点号为 %ld\n", (long) st.st_ino);
    printf("文件权限为: %lo (octal)\n",(unsigned long) st.st_mode);
    printf("链接数为: %ld\n", (long) st.st_nlink);
    printf("所有者: 用户为:%s, 组为:%s\n",getpwuid(st.st_uid)->pw_name,getgrgid(st.st_gid)->gr_name);
    printf("I/O缓存区大小为:%ld",(long) st.st_blksize);
    printf("文件大小为:%lld 字节\n",(long long) st.st_size);
    printf("块数为:%lld字节\n",(long long) st.st_blocks);
    printf("最后一次文件属性改变时间: %s",ctime(&st.st_ctime));
    printf("最后一次修改时间: %s",ctime(&st.st_mtime));
    printf("最后一次访问时间: %s",ctime(&st.st_atime));

    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171782.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python批量修改图片名_批量给图片改名字并创建文件夹

    python批量修改图片名_批量给图片改名字并创建文件夹转载来源:https://blog.csdn.net/u011574296/article/details/72956446

    2025年9月13日
    5
  • idea代码整理快捷键_IDEA怎么设置快捷键

    idea代码整理快捷键_IDEA怎么设置快捷键快捷键功能Ctrl+X删除行Ctrl+D复制行Ctrl+N查找类Ctrl+F查找文本Ctrl+J自动代码Ctrl+H显示类结构图Ctrl+Q显示注释文档Ctrl+P方法参数提示Ctrl

    2022年10月12日
    4
  • 怎么查看tomcat是否安装_如何查看申报是否成功

    怎么查看tomcat是否安装_如何查看申报是否成功Step1、下载软件安装包访问Apache官网,tomcat是开源组织Apache成员,我们可以在Apache官网中下载tomcat。下载网址:http://tomcat.apache.org/打开页面如下可以在当前这个页面选择自己想要下载的版本。Step2、下载后,直接解压,是免安装的包,进入Tomcat的安装路径bin目录下,我放的是本机的D盘,

    2022年9月19日
    0
  • get请求的长度限制是多少_url长度限制为多少

    get请求的长度限制是多少_url长度限制为多少Httpget方法提交的数据大小长度并没有限制,Http协议规范没有对URL长度进行限制。目前说的get长度有限制,是特定的浏览器及服务器对它的限制。各种浏览器和服务器的最大处理能力如下:IE:对URL的最大限制为2083个字符,若超出这个数字,提交按钮没有任何反应。Firefox:对Firefox浏览器URL的长度限制为:65536个字符。Safari:URL最大长度限制为80000个字符。Opera:URL最大长度限制为190000个字符。Goog

    2022年8月24日
    39
  • pycharm调用模块怎么import不了_python路径添加

    pycharm调用模块怎么import不了_python路径添加configureinterpreters下添加链接路径及源码路径全部打钩点击目标文件,勾选源码,即可在文件中import添加使用

    2022年8月29日
    4
  • windows server 2008 r2 DNS服务器配置图文教程「建议收藏」

    windows server 2008 r2 DNS服务器配置图文教程「建议收藏」DNS服务器  DNS服务器用来负责将ip地址和域名进行互相解析。  DNS服务器的作用      简单来说,DNS服务器的作用就是帮助用户使用简单好记的域名来访问网络上的主机和网络服务。  DNS服务器中的记录类型 A地址:用于为特定域名制定对应的IP地址。CNAME:用于为特定域名指定对应的的别名,用户可以通过别名访问这个域名,也可以为特定域名指定多个别名。MX:用于为…

    2022年6月3日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号