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


相关推荐

  • 数据挖掘应用案例

    数据挖掘应用案例1.哪些商品放在一起比较好卖?  这是沃尔玛的经典案例:一般看来,啤酒和尿布是顾客群完全不同的商品。但是沃尔玛一年内数据挖掘的结果显示,在居民区中尿布卖得好的店面啤酒也卖得很好。原因其实很简单,一般太太让先生下楼买尿布的时候,先生们一般都会犒劳自己两听啤酒。因此啤酒和尿布一起购买的机会是最多的。这是一个现代商场智能化信息分析系统发现的秘密。这个故事被公认是商业领域数据挖掘的诞生。

    2022年6月21日
    28
  • mac如何使用快捷键,使得窗口最大化/最小化(完)[通俗易懂]

    mac如何使用快捷键,使得窗口最大化/最小化

    2022年4月7日
    245
  • ant安装配置使用介绍及eclipse中使用

    ant安装配置使用介绍及eclipse中使用一、安装ant到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包。将其解压到你的硬盘上,例如:C:\apache-ant-1.8.1。ant是java编写的,具有跨平台特点。.需要安装JDK,二、配置环境变量window中设置ant环境变量:配置环境变量

    2022年7月18日
    19
  • CSS3 opacity 属性介绍

    CSS3 opacity 属性介绍CSS3opacity属性定义和用法opacity属性设置元素的不透明级别。默认值: 1 继承性: no 版本: CSS3 JavaScript语法: object.style.opacity=0.5 语法opacity:value|inherit;值 描述 value 规定不透明度。从0.0(完全透明)到…

    2022年5月26日
    19
  • c语言list的使用方法,c语言list操作

    c语言list的使用方法,c语言list操作#includetypedefstructLnode{intdata;structLnode*next;}LND,*lnd;lndmalloclist(lndl){l=(lnd)malloc(sizeof(LND));returnl;}intinitlist(lndl,intn){l->data=n;l->next=NULL;lndp;for(…

    2022年7月12日
    27
  • Android下载apk异常java.net.SocketTimeoutException: timeout解决办法

    Android下载apk异常java.net.SocketTimeoutException: timeout解决办法1、问题实现下载apk的时候,抛出下面异常java.net.SocketTimeoutException:timeout2、分析很明显是socket超时了,由于我的wifi网络比较慢,设置的超时时间可能短了。在写入由GetRequestStream方法返回的流时,或在读取由GetResponseStream方法返回的流时,会用到ReadWriteTimeout属性,ReadWrite…

    2022年8月31日
    6

发表回复

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

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