gpt4 book ai didi

c - 在 C 中获取文件系统创建日期

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:05 25 4
gpt4 key购买 nike

我需要用 C 知道磁盘上(在 Linux 机器上)文件系统的创建日期时间。我想避免使用 shell 命令,例如

tune2fs -l /dev/sdb2 | grep 'Filesystem created:' 

并制作一个解析器。

谢谢

最佳答案

在用 C(或任何能够调用 C 例程的语言)编写的程序中,您将使用 stat(2)系统调用(或者,使用最近 内核和一些 文件系统,statx(2) 一个)来查询给定文件(或目录)的创建时间。当然,像 ls(1) 这样的命令或 stat(1)在内部使用 stat(2)系统调用。

没有标准和文件系统中立的方法来获取给定 file system 的创建时间.该信息并不总是保留。我猜 FAT文件系统,或 distributed file systems例如NFS , 不要保留它。

您可能会使用 stat(2)在该文件系统的挂载点上。

statfs(2)系统调用检索一些文件系统信息,但不提供任何时间戳。

对于 ext4 文件系统,请参阅 ext4(5)并使用 proc(5) .您可能会解析 /proc/mounts 和一些 /proc/fs/ext4/*/ 目录。 /proc/ 中的伪文件可以是parsed quickly通常不会涉及物理磁盘 IO。

您也可以在 ext2/3/4 disk partition 工作级别,在未安装文件ext[234] 系统上,带有类似(或来自)e2fsprogs 的库(或程序) .如果挂载了某个文件系统,则不应访问(甚至只是读取)包含该文件系统的磁盘分区。

(您的问题应该提供一些动机和背景)

关于c - 在 C 中获取文件系统创建日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47979775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com