在 C 语言中,fread
是用于从文件中读取二进制数据的函数之一。它属于标准 I/O 类型的函数,用于读取指定数量的元素到内存中。fread
函数的原型如下:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
fread
函数接受四个参数:
ptr
:指向接收数据的内存块的指针。size
:要读取的每个元素的字节数。count
:要读取的元素的数量。stream
:指向要读取的文件的指针。
fread
函数将根据指定的 size
和 count
参数从文件中读取 size * count
字节的数据,然后将其存储到指定的内存块中。成功读取后,它返回实际读取的元素数量(通常等于 count
),如果发生错误或到达文件末尾,则返回一个小于 count
的值(最后一次读取是count向下取整)。
#include <stdio.h>
int main()
{
FILE *fp = fopen("./test.txt", "r");
if (fp == (FILE *)NULL)
{
perror("打开文件失败!");
return -1;
}
char buf[100] = "\0";
int fread_ret;
int x = ftell(fp);
fread_ret = fread(buf, 3, 3, fp);
int y = ftell(fp);
printf("%d\n",y-x);
printf("%d\n",y);
printf("%d\n",x);
printf("buf:%s----块数:%d\n", buf, fread_ret);
if (fclose(fp) == -1)
{
perror("关闭文件失败!");
return -1;
}
return 0;
}
fread
函数常用于读取二进制文件中的数据,例如读取图像、音频、视频等。请确保正确设置 size
和 count
参数,以确保准确读取所需的字节数。