嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第3章 文件IO编程_第1页
嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第3章 文件IO编程_第2页
嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第3章 文件IO编程_第3页
嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第3章 文件IO编程_第4页
嵌入式系统原理与应用-基于Cortex-A53微处理器 课件 第3章 文件IO编程_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统原理与应用电子与电气工程学院第三章文件I/O编程教师:程蔚正大气象厚德载物MinnanUniversityofScienceandTechnology文件I/O编程CONTENTS01.系统调用---文件访问02.标准I/O---文件访问03.S5P6818文件操作实例正大气象厚德载物MinnanUniversityofScienceandTechnology01PARTONE系统调用---文件访问正大气象厚德载物MinnanUniversityofScienceandTechnology任务实现:在广告屏上显示“中华人民共和国成立75周年”宣传图Linux中文件编程可以使用两种方法:Linux系统调用:依赖于Linux系统C语言库函数:与操作系统是独立的,在任何操作系统下,使用C语言库函数操作文件的方法都是相同的。文件编程在数字世界中,文件不仅是数据的载体,更是信息安全的前线,掌握文件操作就像是通往打开数字宝库的钥匙,而Linux下一切皆文件,文件操作尤其重要。

系统调用---创建文件(creat)filename:要创建的文件名(包含路径,缺省为当前路径)mode:创建模式,常见创建模式有S_IRUSR 可读4S_IWUSR 可写2S_IXUSR 可执行1S_IRWXU 可读可写可执行7intcreat(constchar*filename, mode_tmode)系统调用---access功能:判断文件是否可以进行某种操作(读,写,存在等)pathname:文件名称mode:要判断的访问权限。可以取以下值或者是他们的组合。R_OK:文件可读,W_OK:文件可写,X_OK:文件可执行,F_OK:文件存在。返回值:当测试成功时,函数返回0,否则如果一个条件不符时,返回-1。intaccess(constchar*pathname,intmode)系统调用---打开文件(open)pathname:要打开的文件名(包含路径,缺省为当前路径)flags:打开标志mode:被打开文件的权限返回值:成功为文件描述符,失败为-1intopen(constchar*pathname,intflags)intopen(constchar*pathname,intflags,mode_tmode)系统调用---关闭文件(close)fd:文件描述符返回值:成功为0,失败为-1intclose(intfd)操作3.1:open_count.c操作3.2:access_creat.c系统调用---read功能:从文件描述符fd所指定的文件中读取length个字节到buf所指向的缓冲区中。fd:文件描述符buf:读出数据的缓冲区length:读出的字节数返回值:成功为实际读取的字节数,到达文件结尾为0,失败为-1。intread(intfd,constvoid*buf,size_tlength)系统调用---write功能:把length个字节从buf指向的缓冲区中写到文件描述符fd所指向的文件中,返回值为实际写入的字节数。fd:文件描述符buf:写入数据的缓冲区length:写入数据的字节数返回值:成功已写的字节数,失败为-1intwrite(intfd,constvoid*buf,size_tlength)操作3.3:my_copy.c系统调用---lseek功能:将文件读写指针相对whence移动offset个字节。fd:文件描述符offset:偏移量,负(向前移),正(向后移)whence:相对位置SEEK_SET:当前位置为文件的开头 SEEK_CUR:当前位置为文件指针的位置 SEEK_END:当前位置为文件的结尾返回值:成功为文件的当前位移,失败为-1intlseek(intfd,offset_toffset,intwhence)操作3.4:read_wav.c1、open、close、read、write、creat、lseek、access2、作业3、思政:在数字世界中,文件不仅是数据的载体,更是信息安全的前线,掌握文件操作就像是通往打开数字宝库的钥匙。

总结与作业THANKYOU!02PARTTWO标准I/O---文件访问正大气象厚德载物MinnanUniversityofScienceandTechnology标准I/O---打开文件(fopen)path:要打开的文件名(包含路径,缺省为当前路径)mode:文件打开的状态返回值:成功为文件指针,失败为NULLFILE*fopen(constchar*path,constchar*mode)标准I/O---关闭文件(fclose)stream:已打开的文件指针返回值:成功为0,失败为EOFintfclose(FILE*stream)标准I/O---错误处理s:在标准错误流上输出的信息返回值:无voidperror(constchar*s);errnum:错误码返回值:错误码对应的错误信息char*strerror(interrnum);标准I/O---文件定位stream:需要定位的文件指针offset:相对于基准值的偏移量whence:基准值,SEEK_SET:文件起始位置SEEK_CUR:文件当前读写位置SEEK_END:文件结束位置返回值:成功为0,失败为EOF。intfseek(FILE*stream,longoffset,intwhence);标准I/O---文件定位stream:需要定位的文件指针返回值:成功为当前读写位置,失败为EOF。longftell(FILE*stream);标准I/O(指定大小进行读写)---文件读ptr:存放读入记录的缓冲区size:读取的记录大小nmemb:读取的记录数stream:要读取的文件流返回值:成功为返回实际读取到的nmemb数目

失败为EOF。size_tfread(void*ptr,size_tsize,size_tnmemb,FILE*stream)标准I/O(指定大小进行读写)---文件写ptr:存放写入记录的缓冲区size:写入的记录大小nmemb:写入的记录数stream:要写入的文件流返回值:成功为返回实际写入的nmemb数目

失败为EOF。size_tfwrite(void*ptr,size_tsize,size_tnmemb,FILE*stream)操作3.5:fread_fwrite.c标准I/O(按字符(字节)输入/输出)---文件读写stream:要输入的文件流返回值:成功为下一个字节

失败为EOF。intgetc(FILE*stream)intfgetc(FILE*stream)intgetchar(void)标准I/O(按字符(字节)输入/输出)---文件读写c:需要写的内容stream:要写入的文件流返回值:成功为字符

失败为EOF。intputc(intc,FILE*stream)intfputc(intc,FILE*stream)intputchar(intc)操作3.6:fgetc_fputc.c标准I/O(按行输入/输出)---文件读写s:要输出的字符串stream:对应的文件流返回值:成功为s;失败为NULL。intputs(constchar*s)intfputs(constchar*s,FILE*stream)操作3.7:fgets_fputs.cchar*gets(char*s)charfgets(char*s,intsize,FILE*stream)s:要输入的字符串size:输入的字符串长度stream:对应的文件流返回值:成功为s,失败为NULL。1、fopen、fclose、fread、fwrite、fseek、fgetc/fputc、fgets/fputs2、作业3、思政:

总结与作业THANKYOU!03PARTTHERE正大气象厚德载物MinnanUniversityofScienceandTechnologyS5P6818文件操作实例S5P6818显示图片---原理在Linux中,一切皆文件,LCD显示屏对应的设备文件为/dev/fb0。如果想让LCD显示屏显示颜色,就是把颜色写入到LCD显示屏对应的设备文件中,查看LCD设备文件相关信息。[root@GEC6818/IOT]#ls-l/dev/fb0crw-rw----1rootroot29,0Jan11970/dev/fb0颜色基于RGB模型,即红、绿、蓝,其范围是[0,255],每种颜色分量都占一个字节。LCD显示屏显示接收的颜色信息是aRGB,a为透明度,一般为0,总共4个字节,正好是int类型数据。如果要显示红色,可以定义一个变量等于0x00ff0000,绿色为0x0000ff00,蓝色为0x000000ff。10寸LCD显示屏的大小为1024*600,7寸LCD显示屏的大小为800*480,写入顺序是从左到右,从上到下。图片的格式有很多,比如bmp、png、gif、jpg等。bmp格式图片包含54字节的bmp格式的文件头和像素值,其像素值以BGR形式排列,每一个像素占有3字节。S5P6818显示图片操作3.8:bmp.c编译运行结果[root@GEC6818/IOT]#rxbmp[root@GEC6818/IOT]#

chmod777bmp[root@GEC6818/IOT]#./bmpcw@dell:/mnt/hgfs/share/day1_io$arm-none-linux-gnueabi-gccbmp.c-obmpS5P6818获取坐标值操作3.9:ts.c编译运行结果cw@dell:/mnt/hgfs/share/day1_io$

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论