欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    嵌入式系统中文件的操作.ppt

    • 资源ID:5322149       资源大小:508.01KB        全文页数:29页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式系统中文件的操作.ppt

    嵌入式系统中文件的操作,专业:模式识别与智能控制系统学号:1306039姓名:冯宇谦,内容,文件的概念,系统调用的文件操作,库函数的文件操作,(1)文件的概念,1、文件文件是对系统资源的一个抽象,是对系统资源进行访问的一个通用接口,诸如内存、硬盘、一般设备及进程间通信的通道。在Linux系统上,一切接文件,文件无所不在。2、文件类型普通文件、目录文件、设备文件、链接文件、管道文件、socket3、文件描述符文件描述符是应用程序中表示被打开文件的一个整数,其他对文件的操作接口都要使用这个整数来指定所操作的文件,(2)系统调用的文件操作,即底层操作,是实现文件操作最直接的方式,open函数语法,需要的头文件:#include#include#include 函数原型:int open(const char*pathname,int flags);int open(const char*pathname,int flags,mode_t mode);参数说明:pathname:被打开的文件名(包括路径名);flags:文件打开方式,有以下取值:O_RDONLY:只读O_WRONLY:可写O_RDWR:读写这几个标志指定打开方式,她们之间是互斥的,不能同时使用,但可以与下面的标志用按位或的方式组合起来使用,open函数语法,O_APPEND 追加方式打开文件,每次写时都写在文件末尾。O_CREAT 如果文件不存在,则创建一个,存在则打开它。O_EXCL 与O_CREAT一起使用时,如果文件已经存在则返回出错。O_TRUNC 以只写或读写方式打开时,把文件截断为0O_DSYNC 每次write时,等待数据写到磁盘上。O_RSYNC 每次读时,等待相同部分先写到磁盘上。O_SYNC 每次write时,等到数据写到磁盘上并接更新文件属性。,open函数语法,mode:指定新文件的权限,常用取值如下:S_IRWXUGO 可读 可写 可执行 S_IRUSR GRP OTH 可读 S_IWUSR GRP OTH 可写 S_IXUSR GRP OTH 可执行 S_ISUID 设置用户ID S_ISGID 设置组ID这些值可以按位或的方式组合使用返回值:成功返回文件描述符;失败返回-1,close函数语法,需要的头文件:#include 函数原型:int close(int fd);函数参数:fd 文件描述符函数返回值 0 成功-1 出错,read函数语法,需要的头文件:#include 函数原型:ssize_t read(int fd,void*buf,size_t count);函数参数:fd 文件描述符buf 存储内容的内存空间(指定存储读出数据的缓冲区)count 读取的字节数函数返回值0 成功读取的字节数0 出错 0 表示遇到文件末尾EOF,write函数语法,需要的头文件:#include 函数原型:ssize_t write(int fd,void*buf,size_t count);函数参数:fd 文件描述符buf 需要写入内容的内存空间(缓冲区的指针)count 写入的字节数函数返回值0 成功写入的字节数0 出错 0 表示遇到文件末尾EOF,ioctl函数语法,需要的头文件:#include 函数原型:Int ioctl(int fd,int request,)函数参数:fd 文件描述符request 代表要进行的操作,不同的文件有不同的定义可变参数 取决于request参数,通常是一个指向变量或结构体的指针。函数返回值成功返回0,有些ioctl返回其他非负值,错误返回-1,(3)库函数的文件操作,C标准库提供了文件的标准I/O函数库,相比系统调用,主要差别是实现跨平台的用户态缓冲的解决方案举例:当使用printf输出多个字符时,缩写字符放在一个缓冲区,直到遇见换行系统才调用write函数将数据输出。好处:提高I/O操作效率。系统调用要请求内核服务,会引来cpu模式的切换,期间大量的堆栈数据保存操作,开销较大,频繁系统调用会降低运行效率,有了缓冲机制,多个读写操作合并为一,大大提高程序运行效率。由此可知,I/O函数实际上是对底层系统调用的保障,最终读写操作人需要调用系统函数完成。,(3)库函数的文件操作,概念:文件指针:库函数并不直接操作文件的描述符,而是使用文件指针。文件指针与文件描述符是一一对应关系,文件指针的数据类型为FILE型。流:自标准I/O中,一个打开的文件称为流。,I/O库函数,应用程序,系统调用,Open close Read write.,fopen fread fwrite fclose.,(3)库函数的文件操作,标准I/O操作是基于流缓冲的,是符合ANSI C的标准I/O处理。比如:printf()、scanf()函数等。带缓冲的I/O操作是在内存中开辟一个“缓冲区”,为程序中的每一个文件使用。当执行读文件的操作时,从磁盘文件中将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依次读入接收的数据。,带缓存的I/O操作,fopen函数语法,需要的头文件:#include 函数原型:FILE*fopen(const char*path,const char*mode);参数说明:path:带文件路径的文件名mode:文件打开状态。返回值:成功返回指向FILE的文件指针(文件句柄);失败返回NULL,fopen函数的参数mode取值,fclose函数语法,需要的头文件:#include 函数原型:int fclose(FILE*stream);参数说明:stream:文件句柄。返回值:成功返回0;出错返回EOF,fread函数语法,需要的头文件:#include 函数原型:size_t fread(void*ptr,size_t size,size_t nmemb,FILE*stream);参数说明:ptr:指向一块存储空间,用来存放本次读取到的数据size:读取文件一条记录的字节数大小nmemb:本次读取文件记录的数目stream:将要读取的文件流句柄返回值:成功返回实际读取到的nmemb数目出错返回EOF,fwrite函数语法,需要的头文件:#include 函数原型:size_t fwrite(const void*ptr,size_t size,size_t nmemb,FILE*stream);参数说明:ptr:需写入的数据地址size:写入文件一条记录的字节数大小nmemb:写入文件记录的数目stream:将要写入数据的文件流句柄返回值:成功返回实际写入到的nmemb数目出错返回EOF,fseek函数语法,需要的头文件:#include 函数原型:int fseek(FILE*stream,long offset,int whence);参数说明:stream:文件句柄offset:偏移量(可正可负)whence:SEEK_SET 文件开头+offset为新读写位置 SEEK_CUR 目前读写位置+offset为新位置 SEEK_END 文件结尾+offset为新位置返回值:成功返回0出错返回-1,ftell函数语法,需要的头文件:#include 函数原型:int ftell(FILE*stream);参数说明:stream:文件句柄返回值:0:文件流当前操作位置相对于文件头的偏移量0:出错函数说明:简单地返回当前位置。,rewind函数语法,需要的头文件:#include 函数原型:void rewind(FILE*stream);参数说明:stream:文件句柄返回值:无函数说明:把文件指针位置设置为0,即把文件指针设置到文件的起始位置。,fgetc函数语法,需要的头文件:#include 函数原型:int fgetc(FILE*stream);参数说明:stream:文件句柄返回值:0:成功读取字符内容EOF:出错函数说明:从文件中读取一个字符。,fputc函数语法,需要的头文件:#include 函数原型:int fputc(int ch,FILE*stream);参数说明:ch:需要写入文件的字符内容stream:文件句柄返回值:0:成功写入的字符值EOF:出错函数说明:向文件中写入一个字符。,fgets函数语法,需要的头文件:#include 函数原型:char*fgets(char*s,int n,FILE*stream);参数说明:s:读取字符串的存储内存指针n:读取字符串内存的大小stream:文件句柄返回值:非空:成功NULL:出错函数说明:从文件中读取一行字符串。,fputs函数语法,需要的头文件:#include 函数原型:int fputs(char*string,FILE*stream);参数说明:string:需要写入文件的字符串内容stream:文件句柄返回值:0:成功0:出错函数说明:向文件中写入一个字符串。,库函数调用对比系统调用,结束!,

    注意事项

    本文(嵌入式系统中文件的操作.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开