文件IO操作.ppt

文件IO操作.ppt

ID:48765629

大小:1.82 MB

页数:60页

时间:2020-01-22

文件IO操作.ppt_第1页
文件IO操作.ppt_第2页
文件IO操作.ppt_第3页
文件IO操作.ppt_第4页
文件IO操作.ppt_第5页
资源描述:

《文件IO操作.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux下的文件操作目录基本概念1文件IO操作2底动IO操作2.1标准IO操作32.2▲文件文件:一组相关数据的有序集合在Linux中,一切(几乎一切)都是文件。Linux环境中的文件具有特别重要的意义,因为它们为操作系统服务和设备提供了一个简单而统一的接口。设备对操作系统而言也可以看做是文件,通常程序完全可以像使用文件那样使用磁盘文件、串口、打印机和其他设备。目录也是一种文件,但它是一种特殊类型的文件。可以这么说Linux中的任何事物都可以用一个文件代表,或者可以通过特殊的文件进行操作。当然,它们会与我们熟悉的传统文件有一些细微的区别,但两者的基本原则是一致的Linux常

2、见的文件类型有5种:普通文件、目录文件、链接文件、设备文件和管道文件。Linux文件权限可分四种:可读取、可写入、可执行和无权限。分别用r、w、x和-表示。▲系统调用系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。为什么用户程序不能直接访问系统内核提供的服务呢?这是由于在Linux中,为了更好地保护内核空间,将程序的运行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别运行在不同的级别上,在逻辑上是相互隔离的。因此

3、,用户进程在通常情况下不允许访问内核数据,也无法使用内核函数,它们只能在用户空间操作用户数据,调用用户空间的函数。但是,在有些情况下,用户空间的进程需要获得一定的系统服务(调用内核空间程序),这时操作系统就必须利用系统提供给用户的“特殊接口”——系统调用规定用户进程进入内核空间的具体位置。进行系统调用时,程序运行空间需要从用户空间进入内核空间,处理完后再返回到用户空间。Linux系统调用部分是非常精简的系统调用(只有250个左右)),它继承了UNIX系统调用中最基本和最有用的部分。这些系统调用按照功能逻辑大致可分为进程控制、进程间通信、文件系统控制、系统控制、存储管理、网络管

4、理、socket控制、用户管理等几类。▲库函数前面讲到的系统调用并不是直接与程序员进行交互的,在实际使用中程序员使用的通常是库函数.这些系统调用编程接口主要通过C库(libc)实现的.并不是所有库函数都一一对应一个系统调用.有时,一个库存函数会需要几个系统调用来共同完成函数的功能;有一些库存函数不需要调用任何系统调用(因其不是完成内核提供的服务).▲系统命令系统命令相对库函数更高一层,它实际上是一个可执行程序,它的内部引用了库函数来实现相应的功能.比如:ls、cd等命令▲文件I/O基本操作Linux系统中文件操作主要有:底层IO操作标准IO操作▲底层IO操作底层文件I/O不带

5、缓冲不带缓冲指的是每个文件操作动作都调用内核中的相应系统调用通过文件描述符来访问文件▲文件描述符如何区分和引用特定的文件呢?这里用到了一个重要的概念——文件描述符。对于Linux而言,所有对文件(设备)的操作都是使用文件描述符来进行的。文件描述符是一个非负的整数,它是一个索引值。当打开一个现存文件或创建一个新文件时,内核就向当前运行程序返回一个文件描述符;当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数通常,一个程序一开始运行时,都会打开3个文件:标准输入标准输出标准出错处理这3个文件分别对应文件描述符为0、1和2(也就是宏替换STDIN_FILENO、STDOU

6、T_FILENO和STDERR_FILENO)。▲底层文件I/O常用函数open()close()read()write()lseek()open()函数是用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。close()函数是用于关闭一个被打开的文件。当一个进程终止时,所有被它打开的文件都由内核自动关闭,很多程序都使用这一功能而不显示地关闭一个文件。在open函数中,flag参数可通过”

7、”组合构成,但前3个函数不能相互组合.close函数open和close函数的使用实例read()函数:是用于将从指定的文件读出数据write()函数:是用于向

8、文件写数据lseek()函数:是用于文件指针定位到相应的位置在读普通文件时,若读到要求的字节之前已到达文件的尾部,则返回的字节数会小于希望读出的字节数。read()函数是用于将从指定的文件描述符中读出的数据放到缓存区中,并返回实际读入的字节数。若返回0,则表示没有数据可读,即已达到文件尾。读操作从文件的当前指针位置开始。当从终端设备文件中读出数据时,通常一次最多读一行。read函数例:读取20字节的数据到缓冲区本例中,调用read()后,需要检查返回的结果bytes_read,根据bytes_read进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。