matlab fread fseek,fwrite和fread、fseek()

本文详细介绍了C语言中的文件输入输出函数fread和fwrite,它们主要用于二进制文件的读写操作。同时,解释了fseek函数的功能,该函数用于重定位文件指针,支持从文件开头、当前位置或结尾进行偏移。通过对这三个函数的理解,读者可以更好地掌握C语言中文件处理的基本技巧。
摘要由CSDN通过智能技术生成

fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。

#include

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

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

说明:

参数size指出一条记录的长度,而nmemb指出要读或写多少条记录,这些记录在ptr所指的内存空间中连续存放,共占size * nmemb个字节。

fread从文件stream中读出size * nmemb个字节保存到ptr中,

fwrite把ptr中的size * nmemb个字节写到文件stream中。

fseek()

功 能: 重定位流上的文件指针

描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字 节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。

返回值: 成功,返回0,否则返回其他值。

int fseek(FILE *stream, long offset, int fromwhere);

第一个参数stream为文件指针

第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移

第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_SET: 文件开头

SEEK_CUR: 当前位置

SEEK_END: 文件结尾

其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.

简言之:

fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;

fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;

fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。

在第一个引用中,代码中的fread函数用于从文件中读取数据。rs=fread(readbuff,4,2,fd)表示从文件fd中读取大小为4字节,总共读取2次,并将结果存储在readbuff中。但是在代码中,读取操作之前没有对文件进行打开操作,因此读取失败。 在第二个引用中,代码中的fseek函数用于设置文件指针的位置。fk=fseek(fd,8,SEEK_END)表示将文件指针从文件末尾向前移动8个字节。但是在代码中,打开文件的模式应该是"r"而不是"a",因此无法进行写入操作,导致fseek函数返回错误。 在第三个引用中,代码中的freadfseek函数用于读取和设置文件指针位置。ret_r=fread(buffer,1,4,fp)表示从文件fp中读取大小为1字节,总共读取4次,并将结果存储在buffer中。ret_r表示实际读取的字节数。而ret_w表示成功写入的块数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【Linux】文件操作函数 fopen、fwritefread、fclose、fseek 与 open、write、read、close、lseek](https://blog.csdn.net/Sunnyside_/article/details/119573987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [linux的fseek函数](https://blog.csdn.net/weixin_59349642/article/details/124227714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值