如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第第77章章文件和文件系统结构文件和文件系统结构FILESANDFILESYSTEMSTRUCTUREObjectivesz说明LINUX的文件概念z讨论LINUX支持的各种文件类型z描述文件的属性z说明路径名的概念z说明LINUX文件系统的用户视图z描述LINUX文件系统的用户界面——浏览文件系统。z讨论LINIUX系统内部的文件表示z描述LINUX文件是如何存储在磁盘中的z说明LINUX中标准文件的概念z介绍“~”、“.”、“..”、“/”、PATH、cat、more、cd、dirs、echo、file、ls、mkdir、popd、pwd、rmdir、ypcat等命令和原语7.1LinuxLinux文件概念文件概念Linux中,文件时一个字节序列Linux把所有东西看作文件来处理,如:zAsimplefile(text/executable)普通文件zAdirectoryzAkeyboardzAprinterzAdiskdrivezAnetworkinterfacecard,etc..7.2LinuxLinux文件类型文件类型普通文件z文件名最长不能超过255个字符z可以用任何字符给文件命名z强烈建议不要使用非打印字符、空白字符(空格和制表符)和shell命令保留字符z扩展名对LINUX系统来说没有任何意义z可以任意给文件名加上你自己或应用程序定义的扩展名(e.g..cfileextensionisrequiredbyCcompilers)目录文件:是文件系统中一个目录所包含的目录项组成的文件。目录文件只允许系统进行修改。用户进程可以读取目录文件,但不能对它们进行修改。两个特殊的目录项”·”代表目录本身,”··”表示父目录。7.3LinuxLinux文件类型文件类型cont.cont.Linux继承了UINX,把文件名和文件控制信息分开管理,文件控制信息单独组成一个称为i节点(inode)。inode实质上是一个由系统管理的“目录项”。每个文件对应一个inode,它们有唯一的编号,称为inode号。Linux的目录项主要由文件名和inode号组成。7.4LinuxLinux文件类型文件类型--Ext2目录项/*Structureofadirectoryentry*/#defineEXT2_NAME_LEN255/*Thenewversionofthedirectoryentry.SinceEXT2structuresarestoredinintelbyteorder,andthename_lenfieldcouldneverbebiggerthan255chars,it'ssafetoreclaimtheextrabyteforthefile_typefield.*/structext2_dir_entry_2{__u32inode;/*Inodenumber*/__u16rec_len;/*Directoryentrylength*/__u8name_len;/*Namelength*/__u8file_type;charname[EXT2_NAME_LEN];/*Filename*/};/*Ext2directoryfiletypes.Onlythelow3bitsareused.Theotherbitsarereservedfornow.*/enum{EXT2_FT_UNKNOWN,EXT2_FT_REG_FILE,EXT2_FT_DIR,EXT2_FT_CHRDEV,EXT2_FT_BLKDEV,EXT2_FT_FIFO,EXT2_FT_SOCK,EXT2_FT_SYMLINK,EXT2_FT_MAX};7.5LinuxLinux文件类型文件类型((cont.)cont.)ext2_inode:structext2_inode{__u16i_mode;/*文件类型和访问权限*/__u16i_uid;/*拥有者的用户ID*/__u32i_size;/*文件大小*/__u32i_atime;/*最近一次访问时间*/__u32i_ctime;/*创建时间*/__u32i_mtime;/*最近一次修改时间*/__u16i_gid;/*文件的组ID*/__u32i_blocks;/*分配给该文件的磁盘块的数目*/__u32i_block[EXT2_N_BLOCKS];/*指向磁盘块的指针*/......};7.6LinuxLinux文件类型文件类型((cont.)cont.)设备文件:字符设备文件和块