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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关系型数据库的发展历史[通俗易懂]

    关系型数据库的发展历史[通俗易懂]数据库发展史信息系统产生了海量的数据,有数据必须要有数据的存放位置,无库时代:没有专门的数据库,数据大多以文件形式存放层次状数据库:使用层次状模型进行数据库设计和存放网状数据库:使用网状模型进行数据库设计和存放关系型数据库:使用关系型模型进行数据库设计和存放非关系型数据库:为适应水平扩展性和处理超大量的数据环境,近几年发展非常迅速的发展,衍生类型非常多。 本

    2022年7月16日
    11
  • 逢七过小游戏「建议收藏」

    逢七过小游戏「建议收藏」exercise逢七过的游戏逢七过的游戏。(1-100)游戏规则:123….6过8910111213过1516过1819……遇到7的倍数或者个位数上是7

    2022年8月6日
    1
  • ac测评题库_队长小翼剧场版

    ac测评题库_队长小翼剧场版给定一个 N×M 的棋盘,有一些格子禁止放棋子。问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的“骑士”,类似于中国象棋的“马”,按照“日”字攻击,但没有中国象棋“别马腿”的规则)。输入格式第一行包含三个整数 N,M,T,其中 T 表示禁止放置的格子的数量。接下来 T 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数表示结果。数据范围1≤N,M≤100输入样例:2 3 0输出样例:4#include<b

    2022年8月9日
    3
  • linux系统下载官网下载_msdn官网下载系统

    linux系统下载官网下载_msdn官网下载系统CentOS-6.9-x86_64-bin-DVD1.isohttp://archive.kernel.org/centos-vault/6.9/isos/x86_64/CentOS-6.9-x86_

    2022年8月6日
    4
  • SVM资料

    SVM资料解释SMO算法比较好的文档http://wenku.baidu.com/view/aeba21be960590c69ec3769e.html参考博客:http://myjuno.blogbus.com/logs/242581064.htmlSMO算法http://cs229.stanford.edu/materials/smo.pdf外层循环(主程…

    2022年7月21日
    12
  • javaweb-springboot-2-73

    javaweb-springboot-2-73

    2021年5月18日
    127

发表回复

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

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