📌  相关文章
📜  c stat 示例 (1)

📅  最后修改于: 2023-12-03 15:29:43.333000             🧑  作者: Mango

使用 C 语言中的 stat 函数示例

在 C 语言中,stat 函数可以用于获取文件的元数据信息,例如文件的大小、创建时间、修改时间等。本篇文章将为大家讲解如何使用 stat 函数,并提供一个示例代码。

stat 函数的语法
int stat(const char *path, struct stat *buf);
  • path:要获取信息的文件路径。
  • buf:存储文件元数据信息的结构体。
stat 函数的返回值
  • 如果调用成功,则返回 0。
  • 如果调用失败,则返回 -1,并设置 errno。
stat 函数中的结构体
struct stat {
    dev_t     st_dev;         /* 文件所在设备的 ID */
    ino_t     st_ino;         /* 文件的 inode 码 */
    mode_t    st_mode;        /* 文件的类型和权限 */
    nlink_t   st_nlink;       /* 文件的硬链接数 */
    uid_t     st_uid;         /* 文件所有者的 user id */
    gid_t     st_gid;         /* 文件所有者的 group id */
    dev_t     st_rdev;        /* 如果是特殊文件,则为设备 ID */
    off_t     st_size;        /* 文件的大小(字节数)*/
    time_t    st_atime;       /* 文件最后访问的时间 */
    time_t    st_mtime;       /* 文件最后修改的时间 */
    time_t    st_ctime;       /* 文件状态最后修改的时间 */
    blksize_t st_blksize;     /* 文件系统的块大小 */
    blkcnt_t  st_blocks;      /* 为文件分配的块数 */
};
stat 函数示例代码

下面是一个使用 stat 函数的示例代码:

#include <stdio.h>
#include <sys/stat.h>

int main() {
    char path[] = "test.txt";
    struct stat file_stat;
    if (stat(path, &file_stat) < 0) {
        perror("stat");
        return -1;
    }
    // 输出文件的大小
    printf("Size of file %s: %ld bytes\n", path, file_stat.st_size);
    // 输出文件的最后修改时间
    printf("Last modified time of file %s: %ld\n", path, file_stat.st_mtime);
    return 0;
}

上述代码中,我们首先指定要获取信息的文件的路径,并定义了一个结构体变量 file_stat 用于存储文件元数据信息。接下来,我们调用 stat 函数来获取文件信息。如果 stat 调用失败,我们输出错误信息并返回 -1。

如果调用成功,则可以使用结构体变量 file_stat 中的成员来查看文件的信息。例如,上述代码中我们输出了文件的大小和最后修改时间。

总结

本文介绍了使用 C 语言中的 stat 函数,以及示范了如何使用 stat 函数来获取文件的元数据信息。stat 函数是获取文件信息的重要函数,可以帮助开发者更好地管理文件。