c语言获取linux一个文件的大小
时间: 2024-01-21 18:02:39 浏览: 118
你可以使用C语言中的stat函数来获取Linux文件的大小。具体方法如下:
```
#include <stdio.h>
#include <sys/stat.h>
int main() {
struct stat st;
int result = stat("your_file_path", &st);
if (result == 0) {
printf("File size: %ld bytes\n", st.st_size);
} else {
perror("stat");
}
return 0;
}
```
在上述代码中,stat函数的第一个参数是文件路径,第二个参数是一个指向stat结构体的指针,该结构体包含了文件的详细信息,包括文件大小。如果stat函数执行成功,它将返回0,并将文件信息存储在结构体中,你可以通过st.st_size来获取文件大小。如果执行失败,它将返回-1,并在标准错误流中打印错误消息。
相关问题
linux C语言 获取文件大小
在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()`类似,但直接操作已打开的文件描述符。
c语言用int fd获取linux一个文件的大小
可以使用C语言中的stat函数来获取Linux文件的大小。具体代码如下:
```c
#include <sys/stat.h>
#include <stdio.h>
int main() {
struct stat st;
int fd = open("file.txt", O_RDONLY);
fstat(fd, &st);
int size = st.st_size;
printf("The size of file.txt is: %d bytes\n", size);
close(fd);
return 0;
}
```
其中,`open()` 函数用于打开文件,返回文件描述符 `fd`;`fstat()` 函数通过文件描述符获取文件属性,文件大小是 `st_size`;`close()` 函数用于关闭文件。
阅读全文