linux软件工程师(C语言)实用教程 第4章课件.ppt

linux软件工程师(C语言)实用教程 第4章课件.ppt

ID:57058166

大小:540.50 KB

页数:38页

时间:2020-07-30

linux软件工程师(C语言)实用教程 第4章课件.ppt_第1页
linux软件工程师(C语言)实用教程 第4章课件.ppt_第2页
linux软件工程师(C语言)实用教程 第4章课件.ppt_第3页
linux软件工程师(C语言)实用教程 第4章课件.ppt_第4页
linux软件工程师(C语言)实用教程 第4章课件.ppt_第5页
资源描述:

《linux软件工程师(C语言)实用教程 第4章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章文件的操作本章重点Linux系统的文件属性不带缓存的文件I/O操作基于流的文件I/O操作特殊文件的操作24.1Linux系统文件的属性Linux系统中,文件的准确定义是不包含有任何其他结构的字符流。Linux系统提供的文件系统,是树形层次结构系统。Linux支持多种文件系统,最常用的文件系统是ext2系统。Linux系统的文件属性主要包括文件类型和文件权限两个方面。注意:FHS标准定义了文件系统中每个区域的用途和所需要的最小构成的文件和目录。34.1.1Linux文件类型Linux下最常见的文件类型有5种:普通文件、目录文件、链接文件、管道文件和设备文件。例4.1:设计一个程

2、序,要求列出当前目录下的文件信息,以及系统“/dev/sda1”和“/dev/lp0”的文件信息。编辑源程序代码:44.1.1Linux文件类型Linux系统的主要文件类型:54.1.2Linux文件权限对于Linux系统中的文件来说,它的权限可以分为4种:可读取(Readable)、可写入(Writable)、可执行(eXecute)和无权限,分别用r、w、x和-表示。Linux系统按文件所有者、文件所有者同组用户和其它用户三类规定不同的文件访问权限。显示的作为权限的10个字符,可分为四部分:第一位:一般表示文件类型。第二位到第四位(第一组rwx):表示文件所有者的访问权限。第五

3、位到第七位(第二组rwx):表示文件所有者同组用户的访问权限。第八位到第十位(第三组rwx):表示其他用户的访问权限。64.1.2Linux文件权限例4.2:设计一个程序,要求把系统中“/etc”目录下的passwd文件权限,设置成文件所有者可读可写,所有其他用户为只读权限。源程序代码:编译、运行后,使用ls–l命令查看“/etc/passwd”文件的权限[root@localhostroot]#ls-l/etc/passwd74.1.2Linux文件权限例4.3:设计一个程序,要求设置系统文件与目录的权限掩码。源程序代码:注意:运行一次此例的程序后,修改源程序中的掩码后,再次编译

4、运行,文件“liu1”和“liu2”的权限并不改变。因为如果文件已经存在,touch只修改时间标记。如果要再次验证新的掩码,需要再次运行程序前删除原来的文件。84.1.2Linux文件权限chmod函数说明mode参数说明94.1.2Linux文件权限umask函数说明思考题:设计一个程序,要求Linux系统新建的文件权限 是0400。104.1.3Linux文件的其他属性文件还有创建时间,大小等其他的属性。在Linux系统中,定义了stat结构体来存放这些信息。如果要获得文件的其他属性,可以使用stat函数或者fstat函数。stat函数用来判断没有打开的文件,而fstat函数用

5、来判断打开的文件。使用较多的属性是st_mode,通过此属性可以判断给定的文件是一个普通文件还是其他文件类型。114.1.3Linux文件的其他属性例4.4:设计一个程序,应用系统函数stat获取系统中“/etc”目录下的passwd文件的大小。源程序代码:124.1.3Linux文件的其他属性stat函数说明思考题:设计一个程序,要求判断“/etc/passwd”的文件类型。使用st_mode属性,可以使用几个宏来判断:S_ISLNK(st_mode)是否是一个连接,S_ISREG是否是一个常规文件S_ISDIR是否是一个目录,S_ISCHR是否是一个字符设备,S_ISBLK是否

6、是一个块设备,S_ISFIFO是否是一个FIFO文件,S_ISSOCK是否是一个SOCKET文件。设计一个程序,要求打开文件“/etc/passwd”,判断它的最后一次访问时间。134.2不带缓存的文件I/O操作Linux系统中,基于文件描述符的文件操作主要有:不带缓存的文件I/O操作和带缓存的文件流I/O操作。不带缓存的文件I/O操作,又称系统调用I/O操作,符合POSIX标准,设计的程序能在兼容POSIX标准的系统间方便地移植。不带缓存的文件I/O操作用到的主要函数:144.2.1文件的创建例4.5:设计一个程序,要求在“/home”目录下创建一个名称为“4-5file”的文件

7、,并且把此文件的权限设置为所有者具有只读权限,最后显示此文件的信息。源程序代码:154.2.1文件的创建creat函数说明思考题:设计一个程序,要求在“/mnt”目录下创建一个名称为“usb”的文件,编辑、调试成功后,运行两次是否有问题?为什么?164.2.2文件的打开和关闭例4.6:设计一个程序,要求在“/home”下以可读写方式打开一个名为“4-6file”的文件,如果该文件不存在,则创建此文件,如果存在,将文件清空后关闭。源程序代码:174.2.2文件的打开和关

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

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

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