第五讲 嵌入式文件IO编程.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式应用程序设计 第五章 嵌入式文件I/O编程 5.1 Linux系统调用及用户编程接口 5.2 Linux文件I/O系统概述 5.3 底层文件I/O操作 5.4 嵌入式Linux串口应用编程 5.5 标准I/O编程 5.6 实验内容 5.7 小结 5.8 思考与练习 5.1 Linux系统调用及用户编程接口 5.1.1 系统调用 5.1.2 用户编程接口 5.1.3 系统命令 5.1.1 系统调用 系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程之间的通信等。 在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,逻辑上是相互隔离的。 用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。 但是,在有些情况下,用户空间的进程需要获得一定的系统服务(调用内核空间程序),这时操作系统就必须利用系统提供给用户的“特殊接口”——系统调用规定用户进程进入内核空间的具体位置。进行系统调用时,程序运行空间需要从用户空间进入内核空间,处理完后再返回到用户空间。 5.1.2 用户编程接口 在Linux中,用户编程接口(API)遵循了在Unix中最流行的应用编程界面标准——POSIX标准。POSIX标准是由IEEE和ISO/IEC共同开发的标准系统。该标准基于当时现有的Unix实践和经验,描述了操作系统的系统调用编程接口(实际上就是API),用于保证应用程序可以在源代码一级上在多种操作系统上移植运行。这些系统调用编程接口主要是通过C库(libc)实现的。 5.1.3 系统命令 系统命令相对API更高了一层,它实际上是一个可执行程序,它的内部引用了用户编程接口(API)来实现相应的功能 ,它们之间的关系如图: 5.2 Linux文件I/O系统概述 5.2.1 虚拟文件系统 5.2.2 通用文件模型 5.2.3 Linux中文件及文件描述符 5.2.1 虚拟文件系统 Linux系统成功的关键因素之一就是具有与其他操作系统和谐共存的能力。Linux的文件系统由两层结构构建。第一层是虚拟文件系统(VFS),第二层是各种不同的具体的文件系统。 VFS在linux系统中的位置如图: 5.2.2 通用文件模型 通用的文件模型(common file model),这个模型的核心是4个对象类型,即超级块对象(superblock object)、索引节点对象(inode object)、文件对象(file object)和目录项对象(dentry object)。 5.2.3 Linux中文件及文件描述符 对于Linux而言,所有对设备和文件的操作都是使用文件描述符来进行的。文件描述符是一个非负的整数,它是一个索引值,并指向在内核中每个进程打开文件的记录表。当打开一个现存文件或创建一个新文件时,内核就向进程返回一个文件描述符;当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数。 一个进程启动时,都会打开3个文件:标准输入、标准输出和标准出错处理 5.3 底层文件I/O操作 5.3.1 基本文件操作 5.3.2 文件锁 5.3.3 多路复用 5.3.1 基本文件操作 open函数是用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。 所需头文件: #include sys/types.h #include sys/stat.h #include fcntl.h 原型: int open(const char *pathname, int flags, int perms) open系统调用 进程要访问一个文件,必须首先获得一个文件描述符,这是通过open系统调用来完成的。文件描述符是有限的资源,所以在不用时应该及时释放。 该系统调用是用来获得欲访问文件的文件描述符,如果文件并不存在,则还可以用它来创建一个新文件。 5.3.1 基本文件操作 open函数语法要点 Perms 这个参数实际上是可选的,如果用open()创建一个新文件,则要用到该参数,它用来规定对该文件的所有者、文件的用户组和系统中其他用户的访问权限位。它用或运算对下列符号常量建立所需的组合: S_IRUSR 文件所有者的读权限位 S_IWUSR 文件所有者的写权限位 S_IXUSR 文件

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档