C 语言编程 — stat 文件操作
Posted 范桂飓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言编程 — stat 文件操作相关的知识,希望对你有一定的参考价值。
目录
文章目录
stat 库
stat(status,状态)库,用于获取文件或目录的状态信息,如文件大小、创建时间、修改时间等,以及提供了对系统文件和目录进行操作的接口。
结构体
- struct stat :描述文件和目录的元数据信息,包括文件类型、文件大小、权限、时间戳等。
struct stat
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* File serial number */
mode_t st_mode; /* File type and permissions */
nlink_t st_nlink; /* Number of hard links */
uid_t st_uid; /* User ID of the file */
gid_t st_gid; /* Group ID of the file */
dev_t st_rdev; /* Device ID */
off_t st_size; /* file size, in bytes */
blkcnt_t st_blocks; /* blocks allocated for file */
blksize_t st_blksize; /* optimal blocksize for I/O */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last data modification */
time_t st_ctime; /* time of last status change */
;
- struct timespec:描述时间戳,包括秒数和纳秒数。
函数接口
- 获取指定路径的文件或目录的元数据信息,并将结果存储到 buf 中。
int stat(const char *path, struct stat *buf)
- 获取文件描述符 fd 所关联的文件的元数据信息,并将结果存储到 buf 中。
int fstat(int fd, struct stat *buf)
- 获取符号链接文件的元数据信息,并将结果存储到 buf 中。如果 path 是一个符号链接,那么获取的是符号链接指向的文件的元数据信息,而不是符号链接本身的元数据信息。
int lstat(const char *path, struct stat *buf)
- 修改指定路径的文件或目录的权限。
int chmod(const char *path, mode_t mode)
- 创建指定路径的目录,并设置权限为 mode。
int mkdir(const char *pathname, mode_t mode)
- 创建指定路径的文件,文件类型和权限由 mode 指定,设备号由 dev 指定。
int mknod(const char *pathname, mode_t mode, dev_t dev)
ST mode 常量
文件类型:
- S_IFMT :用于屏蔽文件类型的位掩码;
- S_IFSOCK :套接字文件类型;
- S_IFLNK :符号链接文件类型;
- S_IFREG :普通文件类型;
- S_IFBLK :块设备文件类型;
- S_IFDIR :目录文件类型;
- S_IFCHR :字符设备文件类型;
- S_IFIFO :管道文件类型;
文件权限:
-
S_IRUSR :用户可读权限;
-
S_IWUSR :用户可写权限;
-
S_IXUSR :用户可执行权限;
-
S_IRGRP :组可读权限;
-
S_IWGRP :组可写权限;
-
S_IXGRP :组可执行权限;
-
S_IROTH :其他人可读权限;
-
S_IWOTH :其他人可写权限;
-
S_IXOTH :其他人可执行权限;
以上是关于C 语言编程 — stat 文件操作的主要内容,如果未能解决你的问题,请参考以下文章
C 语言文件操作 ( 使用 fread 和 fwrite 实现二进制文件的拷贝 | stat 统计文件大小 | feof 判定文件结尾 )