`fread` 是一个用于文件读取的 C 语言标准库函数。它用于从文件中读取数据块到缓冲区中。这个函数是 C 语言中处理文件操作的一个重要工具。
函数原型如下:
```c
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
```
参数说明:
* `ptr`: 指向用于存储数据的缓冲区的指针。
* `size`: 要读取的每个数据块的大小(以字节为单位)。
* `nmemb`: 要读取的数据块的数量。
* `stream`: 指向要读取的文件的指针(通常是由 `fopen` 函数返回的)。
返回值:这个函数返回实际读取到的数据块的数量(与请求的 `nmemb` 可能不同,如果在读取过程中遇到错误或到达文件末尾)。
使用示例:
```c
#include
int main() {
FILE *file = fopen("example.txt", "rb"); // 以二进制读取模式打开文件
if (file == NULL) {
perror("打开文件失败");
return 1;
}
char buffer[100]; // 缓冲区,用于存储读取的数据
size_t items_read = fread(buffer, sizeof(char), sizeof(buffer), file); // 从文件中读取数据到缓冲区中
if (ferror(file)) { // 检查是否发生错误(如读取失败)
perror("读取文件时出错");
return 1;
}
printf("读取了 %zu 个字节的数据。\n", items_read); // 输出实际读取的字节数
fclose(file); // 关闭文件
return 0;
}
```
注意:在使用 `fread` 时,需要确保文件已经成功打开,并且在读取完成后关闭文件。此外,还需要处理可能的错误情况,如读取失败或达到文件末尾。