每日学习总结20240221

2024-02-22 16:28
文章标签 学习 总结 每日 20240221

本文主要是介绍每日学习总结20240221,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每日总结

20240221

花自飘零水自流。一种相思,两处闲愁。 —— 李清照「一剪梅·红藕香残玉簟秋」

1. stat

在Linux中,stat 是一个用于显示文件或文件系统状态的命令行工具。它提供了关于文件的详细信息,包括文件类型、权限、大小、所有者、修改时间等等。stat 命令对于了解文件的元数据非常有用,并且在 shell 脚本中经常被用来获取文件信息以进行进一步的处理。

以下是 stat 命令的基本用法和输出示例:

stat <file_path>

这会显示指定文件的详细信息。

示例输出:

File: example.txtSize: 69        	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 775121      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   user)   Gid: ( 1000/   group)
Access: 2024-02-21 12:34:56.789012345 +0100
Modify: 2024-02-20 23:45:12.345678901 +0100
Change: 2024-02-20 23:45:12.345678901 +0100Birth: -

这里是输出中的一些关键部分的解释:

  • File:文件名。
  • Size:文件大小(字节)。
  • Blocks:文件所占据的磁盘块数。
  • IO Block:文件的块大小。
  • Device:设备号。
  • Inode:文件的索引节点号。
  • Links:硬链接数。
  • Access:访问时间和权限。
  • Modify:修改时间。
  • Change:状态改变时间。
  • Birth:创建时间。

stat 命令还支持一些选项,例如 -c 用于自定义输出格式,-f 用于显示文件系统状态,等等。你可以通过 man stat 命令来查看完整的 stat 命令手册以获取更多详细信息。

在程序中,stat 函数通常用于获取文件的元数据信息,比如文件大小、访问权限、创建时间等等。stat 函数位于 <sys/stat.h> 头文件中,并且在 POSIX 系统上是标准的系统调用之一。

下面是一个简单的示例程序,演示如何使用 stat 函数获取文件的元数据信息:

#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>int main() {char filename[] = "example.txt"; // 文件名struct stat file_stat;// 获取文件的元数据信息if (stat(filename, &file_stat) == 0) {printf("File: %s\n", filename);printf("Size: %ld bytes\n", file_stat.st_size); // 文件大小(字节)printf("Mode: %o\n", file_stat.st_mode); // 文件权限printf("Owner UID: %d\n", file_stat.st_uid); // 文件所有者的用户 IDprintf("Group GID: %d\n", file_stat.st_gid); // 文件所属组的组 IDprintf("Last access: %ld\n", file_stat.st_atime); // 最后访问时间printf("Last modification: %ld\n", file_stat.st_mtime); // 最后修改时间printf("Last status change: %ld\n", file_stat.st_ctime); // 最后状态改变时间} else {perror("stat");return 1;}return 0;
}

在这个示例中,我们首先包含了 <sys/stat.h> 头文件以使用 stat 函数。然后我们声明了一个 struct stat 结构体变量 file_stat,用于存储获取到的文件元数据信息。接着我们调用 stat 函数,传入文件名和一个指向 struct stat 结构体的指针,以获取文件的元数据信息。如果 stat 函数成功执行,则我们可以通过访问 struct stat 结构体的成员来获取所需的文件信息。

请注意,stat 函数返回 0 表示成功,返回 -1 表示失败,并且错误码会被设置到 errno 变量中。因此,我们在示例中使用了 perror 函数来打印出错误信息,以便排查问题。

以上就是在程序中使用 stat 函数的基本介绍。通过这个函数,我们可以轻松地获取到文件的各种元数据信息,从而进行进一步的处理。

这篇关于每日学习总结20240221的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/735818

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义