实验六Linux下文件程序设计
基本信息
实验课程:Linux程序设计 设课形式:非独立
课程学分:2 实验项目:Linux下文件程序设计
项目类型:验证 项目学时:2
实验预习
实验目的和要求:
- Linux系统的文件属性
- 不带缓存的文件I/O操作
- 基于流的文件I/O操作
- 特殊文件的操作
实验条件:
1、装有Linux操作系统的微型计算机;
实验过程
-
- Linux系统文件的属性
- Linux系统中,文件的准确定义是不包含有任何其他结构的字符流。
- Linux系统提供的文件系统,是树形层次结构系统。
- Linux支持多种文件系统,最常用的文件系统是ext2系统。
- Linux系统的文件属性主要包括文件类型和文件权限两个方面。
6.1.1Linux文件类型
- Linux下最常见的文件类型有5种:普通文件、目录文件、链接文件、管道文件和设备文件。
- Linux系统的主要文件类型:

例6-1:设计一个程序,要求列出当前目录下的文件信息,以及系统“/dev/sda1”和“/dev/lp0”的文件信息。
编辑源程序代码:



6.1.2 Linux文件权限
- 对于Linux系统中的文件来说,它的权限可以分为4种:可读取(Readable)、可写入(Writable)、可执行(eXecute)和无权限,分别用r、w、x和-表示。
- Linux系统按文件所有者、文件所有者同组用户和其它用户三类规定不同的文件访问权限。
- 显示的作为权限的10个字符,可分为四部分:
- 第一位:一般表示文件类型。
- 第二位到第四位(第一组rwx):表示文件所有者的访问权限。
- 第五位到第七位(第二组rwx):表示文件所有者同组用户的访问权限。
- 第八位到第十位(第三组rwx):表示其他用户的访问权限。
- chmod函数说明

- mode参数说明

例6-2:设计一个程序,要求把系统中“/etc”目录下的passwd文件权限,设置成文件所有者可读可写,所有其他用户为只读权限。
源程序代码:

- umask函数说明

例6-3:设计一个程序,要求设置系统文件与目录的权限掩码。
源程序代码:


注意:运行一次此例的程序后,修改源程序中的掩码后,再次编译运行,文件“liu1”和“liu2”的权限并不改变。因为如果文件已经存在,touch只修改时间标记。如果要再次验证新的掩码,需要再次运行程序前删除原来的文件。
思考题:设计一个程序,要求Linux系统新建的文件权限是0400。


6.1.3 Linux文件的其他属性
- 文件还有创建时间,大小等其他的属性。
- 在Linux系统中,定义了stat结构体来存放这些信息。
- 如果要获得文件的其他属性,可以使用stat函数或者fstat函数。
- stat函数用来判断没有打开的文件,而fstat函数用来判断打开的文件。使用较多的属性是st_mode,通过此属性可以判断给定的文件是一个普通文件还是其他文件类型。

- stat函数说明


本文详细介绍了在Linux环境下进行文件程序设计的实验内容,包括文件属性、权限、操作及流文件I/O操作等核心概念。实验覆盖了文件的创建、打开、关闭、读写、定位等操作,以及目录和链接文件的管理。
最低0.47元/天 解锁文章
2033

被折叠的 条评论
为什么被折叠?



