stat 文件_readlink函数

stat 文件_readlink函数statstat函数主要用于获取文件的inode信息。stat命令其实就是调用的stat函数。stat中时间的辨析atime(最近访问时间)mtime(最近更改时间):指最近修改文件内容的时间ctime(最近改动时间):指最近改动inode的时间1)chmod777stat_1.txtstat之后发现ctime变了。改变了文件的权限,文件权限保存在inode里面。2)vims

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

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

stat

stat函数主要用于获取文件的inode信息。
stat命令其实就是调用的stat函数。

stat中时间的辨析

这里写图片描述

  • atime(最近访问时间)
  • mtime(最近更改时间):指最近修改文件内容的时间
  • ctime(最近改动时间):指最近改动inode的时间

1)chmod 777 stat_1.txt stat之后发现ctime变了。改变了文件的权限,文件权限保存在inode里面。
这里写图片描述

2)vim stat_1.txt什么都不做,看一下退出。stat后发现atime变了。
这里写图片描述

3)echo "123456" >>stat_1.txt追加到stat_1.txt后发现mtime,ctime变了。文件内容变了mtime改变,文件大小变了ctime改变,文件大小保存在inode里面。
这里写图片描述

用法:

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

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

fstat函数获得已在描述符上打开的文件的有关信息。
lstat函数类似于stat,但是当命名的文件是一个符号连接时, lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。

函数说明: 通过path获取文件信息,并保存在buf所指的结构体stat中。

返回值: 执行成功则返回0,失败返回-1,错误代码存于errno。
stat结构体:


struct stat {
    dev_t     st_dev;     /* 文件的设备编号 */
    ino_t     st_ino;     /* inode number */
    mode_t    st_mode;    /* 文件的类型和存取权限 */
    nlink_t   st_nlink;   /* number of hard links */
    uid_t     st_uid;     /* user ID of owner */
    gid_t     st_gid;     /* group ID of owner */
    dev_t     st_rdev;    /* device ID (if special file) */
    off_t     st_size;    /* 文件字节数 */
    blksize_t st_blksize; /* blocksize for filesystem I/O */
    blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
    time_t    st_atime;   /* time of last access */
    time_t    st_mtime;   /* time of last modification */
    time_t    st_ctime;   /* time of last status change */
};

实例:

1)输出文件的大小。

#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc, char* argv[])
{
        struct stat s_buf;
        if(argc < 2)
        {
                printf("./app filename\n");
                exit(1);
        }
        if(stat(argv[1], &s_buf) < 0)
        {
                perror("stat");
                exit(1);
        }
        printf("%s\t%d\n", argv[1], s_buf.st_size);
        return 0;
}

这里写图片描述

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

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

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


相关推荐

  • 从几个常见需求看扫描电子书处理软件选择「建议收藏」

    从几个常见需求看扫描电子书处理软件选择「建议收藏」作者:马健邮箱:stronghorse_mj@hotmail.com发布:2020.01.04这几天在eshuyuan碰到一些人谈到扫描电子书处理,很多人的习惯是使用通用图像处理软件,包括Phot

    2022年8月1日
  • 35 个 Java 代码性能优化总结 10-20「建议收藏」

    35 个 Java 代码性能优化总结 10-20

    2022年2月22日
  • Node.js实战:Express实现简单后台登录系统

    Node.js实战:Express实现简单后台登录系统1.建立Express项目在进行以下操作之前,请确保你的电脑已经装好Node.js和Express框架。首先打开命令行提示符,输入express–view=ejs-ewww其中–view=ejs表示使用ejs模版引擎,-e指定项目名称,此处设为www。回车之后,当前文件夹下会多出一个名为www的文件夹,这个就是我们项目所在的地方。此时,www文件夹中默认已经有了基本的文件,但是相关

    2022年5月29日
  • 一个让WordPress媒体库支持外链图片的插件

    一个让WordPress媒体库支持外链图片的插件最近有一个月左右没更新了,因为这个月的业余时间都在忙于一个WordPress插件:ExternalMediawithoutImport。其实只是很小很简单的一个插件,代码不过短短几百行。不过这东西一旦被当成产品认真做起来,依然让我感到——每天在上班时间以外,应对完工作上的需求和bug之后,接着还要在业余时间认真做好另一个产品是多么劳心劳力。这是我正式发布并打算认真维护的第一个个人

    2022年6月18日
  • 计算机组成原理知识点梳理(一)

    计算机组成原理知识点梳理(一)注:所学教材为《计算机组成原理(第二版)》唐朔飞编著;本次梳理涵盖内容为:第一章计算机系统概论1.1计算机系统简介1.2计算机的基本组成参考内容以及图片来源为书本和csdn博文第一章计算机系统概论1.1计算机系统简介计算机系统结构:主要研究软硬件功能的分配和对软硬件界面的确定。计算机组成是计算机系统结构的逻辑实现。计算机实现是对计

    2022年5月31日
  • SQL语句多表连接查询语法

    SQL语句多表连接查询语法总结:内连接就是两个表的交集,左外连接就是左边表加两表交集,右外连接就是右边表加两表交集一、外连接1.左连接leftjoin或leftouterjoinSQL语句:select*fromstudentleftjoinscoreonstudent.Num=score.Stu_id;2.右连接rightjoin或r…

    2022年5月3日

发表回复

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

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