linux C语言 获取文件大小
时间: 2024-10-23 12:02:22 浏览: 26
在Linux环境下,使用C语言获取文件大小可以采用两种方式:
1. **通过`stat()`函数**[^2]:
```c
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h> // 包含结构体stat定义
int main(int argc, char *argv[]) {
int fd = open("../file/hello.txt", O_RDONLY); // 打开文件以读取
if (fd == -1) {
perror("open error");
return -1;
}
struct stat file_info; // 定义一个struct stat来存储信息
memset(&file_info, 0, sizeof(file_info));
if (stat(argv[1], &file_info) != 0) { // 调用stat获取文件状态
perror("stat error");
close(fd);
return -1;
}
printf("%s的文件大小是%d bytes", argv[1], file_info.st_size); // st_size字段存放文件大小
close(fd); // 关闭文件描述符
return 0;
}
```
2. **通过`fstat()`函数**(适用于打开的文件描述符):
```c
#include <stdio.h>
#include <sys/fcntl.h>
int main(int argc, char *argv[]) {
int fd = open("../file/hello.txt", O_RDONLY);
...
struct stat file_info;
fstat(fd, &file_info);
...
}
```
`fstat()`与`stat()`类似,但直接操作已打开的文件描述符。
阅读全文