教学课件:第六章-文件操作.ppt
《教学课件:第六章-文件操作.ppt》由会员分享,可在线阅读,更多相关《教学课件:第六章-文件操作.ppt(38页珍藏版)》请在三一办公上搜索。
1、第 4 章,文件的操作,2,本章重点,Linux系统的文件属性不带缓存的文件I/O操作基于流的文件I/O操作特殊文件的操作,3,4.1 Linux系统文件的属性,Linux系统中,文件的准确定义是不包含有任何其他结构的字符流。Linux系统提供的文件系统,是树形层次结构系统。Linux支持多种文件系统,最常用的文件系统是ext2系统。Linux系统的文件属性主要包括文件类型和文件权限两个方面。,注意:FHS标准定义了文件系统中每个区域的用途和所需要的最小构成的文件和目录。,4,4.1.1 Linux文件类型,Linux下最常见的文件类型有5种:普通文件、目录文件、链接文件、管道文件和设备文件。
2、例4.1:设计一个程序,要求列出当前目录下的文件信息,以及系统“/dev/sda1”和“/dev/lp0”的文件信息。编辑源程序代码:,5,4.1.1 Linux文件类型,Linux系统的主要文件类型:,6,4.1.2 Linux文件权限,对于Linux系统中的文件来说,它的权限可以分为4种:可读取(Readable)、可写入(Writable)、可执行(eXecute)和无权限,分别用r、w、x和-表示。Linux系统按文件所有者、文件所有者同组用户和其它用户三类规定不同的文件访问权限。显示的作为权限的10个字符,可分为四部分:第一位:一般表示文件类型。第二位到第四位(第一组rwx):表示文
3、件所有者的访问权限。第五位到第七位(第二组rwx):表示文件所有者同组用户的访问权限。第八位到第十位(第三组rwx):表示其他用户的访问权限。,7,4.1.2 Linux文件权限,例4.2:设计一个程序,要求把系统中“/etc”目录下的passwd文件权限,设置成文件所有者可读可写,所有其他用户为只读权限。源程序代码:,编译、运行后,使用ls l命令查看“/etc/passwd”文件的权限rootlocalhost root#ls-l/etc/passwd,8,4.1.2 Linux文件权限,例4.3:设计一个程序,要求设置系统文件与目录的权限掩码。源程序代码:,注意:运行一次此例的程序后,修
4、改源程序中的掩码后,再次编译运行,文件“liu1”和“liu2”的权限并不改变。因为如果文件已经存在,touch只修改时间标记。如果要再次验证新的掩码,需要再次运行程序前删除原来的文件。,9,4.1.2 Linux文件权限,chmod函数说明,mode参数说明,10,4.1.2 Linux文件权限,umask函数说明,思考题:设计一个程序,要求Linux系统新建的文件权限 是0400。,11,4.1.3 Linux文件的其他属性,文件还有创建时间,大小等其他的属性。在Linux系统中,定义了stat结构体来存放这些信息。,如果要获得文件的其他属性,可以使用stat函数或者fstat函数。sta
5、t函数用来判断没有打开的文件,而fstat函数用来判断打开的文件。使用较多的属性是st_mode,通过此属性可以判断给定的文件是一个普通文件还是其他文件类型。,12,4.1.3 Linux文件的其他属性,例4.4:设计一个程序,应用系统函数stat获取系统中“/etc”目录下的passwd文件的大小。源程序代码:,13,4.1.3 Linux文件的其他属性,stat函数说明,思考题:设计一个程序,要求判断“/etc/passwd”的文件类型。使用st_mode属性,可以使用几个宏来判断:S_ISLNK(st_mode)是否是一个连接,S_ISREG是否是一个常规文件S_ISDIR是否是一个目录
6、,S_ISCHR是否是一个字符设备,S_ISBLK是否是一个块设备,S_ISFIFO是否 是一个FIFO文件,S_ISSOCK是否是一个SOCKET文件。设计一个程序,要求打开文件“/etc/passwd”,判断它的最后一次访问时间。,14,4.2 不带缓存的文件I/O操作,Linux系统中,基于文件描述符的文件操作主要有:不带缓存的文件I/O操作和带缓存的文件流I/O操作。不带缓存的文件I/O操作,又称系统调用I/O操作,符合POSIX标准,设计的程序能在兼容POSIX标准的系统间方便地移植。不带缓存的文件I/O操作用到的主要函数:,15,4.2.1 文件的创建,例4.5:设计一个程序,要求
7、在“/home”目录下创建一个名称为“4-5file”的文件,并且把此文件的权限设置为所有者具有只读权限,最后显示此文件的信息。源程序代码:,16,4.2.1 文件的创建,creat函数说明,思考题:设计一个程序,要求在“/mnt”目录下创建一个名称为“usb”的文件,编辑、调试成功后,运行两次是否有问题?为什么?,17,4.2.2 文件的打开和关闭,例4.6:设计一个程序,要求在“/home”下以可读写方式打开一个名为“4-6file”的文件,如果该文件不存在,则创建此文件,如果存在,将文件清空后关闭。源程序代码:,18,4.2.2 文件的打开和关闭,open函数说明,19,4.2.2 文件
8、的打开和关闭,close函数说明,思考题:设计一个程序,要求在“/mnt”目录下,打开名称为“usb”的文件,如果该文件不存在,则创建此文件,如果存在,将文件清空后关闭。,20,4.2.3 文件的读写操作,文件读写操作中,经常用到的函数是read、write和lseek。例4.7:设计一个C程序,完成文件的复制工作。要求通过使用read函数和write函数复制“/etc/passwd”文件到“4-7test”文件中,文件名当程序运行时从键盘键入。源程序代码:,21,4.2.3 文件的读写操作,Read、write函数说明,思考题:设计一个程序,使用read函数从源文件读取数据,再用write函
9、数写入到目标文件,源文件名和目标文件名都由键盘输入。设计一个程序,要求在“/mnt”目录下,打开名称为“usb”的文件,如果该文件不存在,则创建此文件,如果已存在,把字符串“usb作为优盘设备文件”写入此文件后关闭。,22,4.2.4 文件上锁,Linux系统中,给文件上锁主要有建议性锁和强制性锁。给文件加建议性锁的是flock函数,给文件加强制性锁的是fcntl函数。一般情况下,系统使用强制性锁,而很少使用建议性锁。当一个文件被上锁后,内核将阻止其他任何文件对其进行读写操作。例4.8:设计一个程序,要求在“/home”下打开一个名为“4-8file”的文件,如果该文件不存在,则创建此文件。打
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学 课件 第六 文件 操作
链接地址:https://www.31ppt.com/p-6290869.html