《嵌入式系统程序设计》第五周学习总结
2017-05-21 12:34 刘锦山2014025669 阅读(315) 评论(0) 编辑 收藏 举报第5周总结
首先用二进制方式向文件读写一组数据,使用fread函数和fwite函数完成。这里读写的数据是指一串固定长度的字节,比如一个int、一个结构体或者一个定长数组等。
其次在实验报告里写入程序代码的含义、使用的编译命令、运行结果
然后把已有的文件进行覆盖并且读出来
理解各个代码的意思
C 库函数 size_t fread从给定流 stream 读取数据到ptr 所指向的数组中。
声明函数库size_t fread(void ptr, size_t size, size_t nmemb, FILE stream)
ptr 含义是指向带有最小尺寸 size*nmemb 字节的内存块的指针。
size 含义是要读取的每个元素的大小,以字节为单位。
nmemb 含义是元素的个数,每个元素的大小为 size 字节。
stream 含义是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。
C函数库fwrite();
C 库函数 size_t fwrite把ptr 所指向的数组中的数据写入到给定流 stream中。
声明格式size_t fwrite(const void ptr, size_t size, size_t nmemb, FILE stream)
各个参数的含义跟fread一样
它的返回值成功,该函数返回一个 size_t 对象,如果该数字与 nmemb 参数不同,则会显示一个错误。
1、fread函数和fwrite函数的每个参数的含义
fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。
(1)size_t fread ( void ptr, size_t size, size_t count, FILE stream );
其中,ptr:指向保存结果的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针函数返回读取数据的个数。
(2)size_t fwrite ( const void ptr, size_t size, size_t count, FILE stream );
其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针函数返回写入数据的个数。
其实学到了很多知识 又一次丰富了自己
二进制和文本模式的区别:
在windows系统中,文本模式下,文件以"\r\n"代表换行。若以文本模式打开文件,并用fputs等函数写入换行符"\n"时,函数会自动在"\n"前面加上"\r"。即实际写入文件的是"\r\n"
在Linux系统中文本模式下,文件以"\n"代表换行。所以Linux系统中在文本模式和二进制模式下并无区别。