前卫目录网

fread - C 库函数用于从流中读取数据 (fread函数的用法)


文章编号:1837 / 更新时间:2024-12-30 17:43:15 / 浏览:
fread

fread 函数用于从流中读取数据到内存缓冲区中。它类似于 fscanf 函数,但适用于二进制文件。

函数原型

size_t fread(void ptr, size_t size, size_t nmemb, FILE stream);

参数

ptr - 指向内存缓冲区的指针,用于存储从流中读取的数据。 size - 每个元素的大小(以字节为单位)。 nmemb - 要读取的元素数量。 stream - 指向文件流的指针。

返回值

成功读取的元素数量。如果文件到达文件末尾,则返回 0。如果出错,则返回 -1。

错误代码

EAGAIN - 流不支持非阻塞 I/O,并且在 O_NONBLOCK 标志设置的情况下进行读取操作。 EBADF - 流描述符无效。 EINTR - 读取操作被信号中断。 EINVAL - size 或 nmemb 为 0。 EIO - I/O 错误。 ENOMEM - 内存不足。 PIPE - 流是一个管道,并且在管道另一端没有读取器。 SIGPIPE - 流是一个 FIFO 或管道,并且在管道另一端没有读取器,且 O_NONBLOCK 标志已设置。

示例

以下示例展示了如何使用 fread 函数从文件中读取数据:
include int main() {FILE fp;int Data[100];size_t num_read;fp = fopen("data.bin","rb");if (fp == NULL) {perror("无法打开文件");return 1;}num_read = fread(data, sizeof(int), 100, fp);fclose(fp);// 处理从文件中读取的数据...return 0;
}

相关函数

fWrite - 将数据写入流中。 fseek - 将流指针移动到指定的位置。 ftell - 获取流指针的当前位置。

注意事项

fread 函数可以读取任何类型的二进制数据,包括结构、数组和对象。 fread 函数只读取 size nmemb 字节的数据,无论数据在流中的实际大小如何。如果流中没有足够的数据来读取 size nmemb 字节,则 fread 函数将返回一个小于 nmemb 的值。 fread 函数不会自动将 null 终止符添加到从流中读取的字符串中。
相关标签: freadfread函数的用法库函数用于从流中读取数据C

本文地址:https://www.qianwe.com/article/bb44fa33f27a9be2f542.html

上一篇:HTMLForm标签的使用html标签作用...
下一篇:HTMLFormElementsahrefs工具...

发表评论

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.qianwe.com/" target="_blank">前卫目录网</a>
文章推荐