linux教程-第3章--文件系统简介课件



《linux教程-第3章--文件系统简介课件》由会员分享,可在线阅读,更多相关《linux教程-第3章--文件系统简介课件(41页珍藏版)》请在装配图网上搜索。
1、,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,3,章 文件系统简介,3.1,Linux,下的,文件系统,3.2,文件的通用操作,方法,3.3 socket,文件类型,2、教学要求,掌握:文件描述符,的作用,、文件的通用操作方法、fctnl与ioctl,了解:文件系统、socket文件类型,第3章 文件系统简介3.1 Linux下的文件系统,1,3.1,Linux,下的文件系统,3.1.1 Linux,下文件的,内涵,3.1.2,文件系统的,创建,3.1.3,挂接,文件系统,3.1.4,索引节点,inode,3.1.5,普通,文件,3.1.6,设备,文
2、件,3.1.7,虚拟文件系统,VFS,3.1 Linux下的文件系统3.1.1 Linux下文,2,3.1.1 Linux,下文件的内涵,Linux,下的文件系统是对复杂系统进行合理抽象的一个经典的例子,它通过一套统一的接口函数对不同的文件进行操作。,普通文件,字符设备文件,块设备文件,socket,文件,3.1.1 Linux下文件的内涵Linux下的文件系统是,3,3.1.2,文件系统的创建,在,Linux,下对磁盘进行操作的工具是,fdisk,,与,Windows,下的,fdisk,功能有些类似,但是命令的格式完全不同。,1,系统分区情况,:fdisk-l,2,建立分区,3,查看分区是否
3、成功,4,格式化分区,5,挂载分区,6,查看分区挂载情况,3.1.2 文件系统的创建在Linux下对磁盘进行操作的工,4,查看分区,/usb,情况:,sudo fdisk-l,查看分区/usb情况:sudo fdisk-l,5,3.1.3,挂接文件系统,Linux,系统下,要使用一个文件系统需要先将文件系统的分区挂载到系统上。,mount,命令用于挂载文件,它有很多选项。,mount,命令的使用格式为:,mount t type mountpoint device o options,例子:将,U,盘挂到,/mnt/usb,目录下(如不存在则要建该目录),根据,fdisk-l,知道,u,盘的名
4、称和文件格式,sudo,mount-t msdos/dev/sdb1/mnt/usb,/mnt/usb,以后就代表,U,盘了,卸载:,sudo u,mount /mnt/usb,3.1.3 挂接文件系统Linux系统下,要使用一个文件系,6,3.2,文件的通用操作方法,3.2.1,文件,描述符,3.2.2,打开创建文件,open(),、,create(),函数,3.2 文件的通用操作方法3.2.1 文件描述符,7,3.2.1,文件描述符,在,Linux,下用文件描述符,来,表示设备文件和普通文件,。文件描述符是一个整型的数据,所有对文件的操作都通过文件描述符实现。文件描述符的范围是,0,OPE
5、N_MAX,。,在,Linux,系统中有,3,个已经分配的文件描述符,即,标准输入、标准输出和标准错误,,它们,文件描述符的值分别为,0,、,1,和,2,。,3.2.1 文件描述符在Linux下用文件描述符来表示设备,8,Linux,通过文件描述符操作文件的原理,Linux通过文件描述符操作文件的原理,9,linux教程-第3章-文件系统简介课件,10,3.2.2,打开创建文件,open(),、,create(),函数,使用这些函数需要头文件:,sys/types.h,、,sys/stat.h,、,fcntl.h,1,函数,open(),、,create(),介绍,2,使用函数,open(),
6、的例子,3.2.2 打开创建文件open()、create()函数,11,1,函数,open(),、,create(),介绍,P.73,int open(const char,*,pathname,int flags);,int open(const char,*,pathname,int flags,mode_t mode);,1函数open()、create()介绍 P.73int,12,1,函数,open(),、,create(),介绍,P.73,int open(const char,*,pathname,int flags);,int open(const char,*,pathna
7、me,int flags,mode_t mode);,1函数open()、create()介绍 P.73int,13,1,函数,open(),、,create(),介绍,P.73,int open(const char,*,pathname,int flags,mode_t mode);,1函数open()、create()介绍 P.73int,14,2,使用函数,open(),的例子,10fd=open(filename,O_RDWR);/*,打开文件为可读写方式*,/,2使用函数open()的例子10fd=open(f,15,3.2.3,关闭文件,close(),函数,close(),函数
8、关闭一个打开的文件,之前打开文件所占用的资源。,1,close(),函数,介绍,2,close(),函数的例子,3.2.3 关闭文件close()函数close()函数关,16,1,close(),函数介绍,close(),函数的原型如下:,#include,int close(int fd);,1close()函数介绍close()函数的原型如下:,17,3.2.4,读取文件,read(),函数,用,read(),函数从打开文件中读数据,用户可以对读入的数据进行操作。,1,read(),函数,介绍,2,read(),函数的例子,3.2.4 读取文件read()函数用read()函数从打,18
9、,1,read(),函数介绍,使用这个函数需要将头文件,unistd.h,加入。,read(),函数的原型定义格式如下。,ssize_t read(int fd,void,*,buf,size_t count);,1read()函数介绍使用这个函数需要将头文件unistd,19,2,read(),函数的例子,fd=open(filename,O_RDONLY);,2read()函数的例子,20,3.2.5,写文件,write(),函数,write(),函数向打开的文件中写入数据,将用户的数据保存到文件中。,1,write(),函数,介绍,2,write(),函数的例子,3.2.5 写文件wri
10、te()函数write()函数向打,21,1,write(),函数介绍,write(),的函数原型如下。,#include,ssize_t write(int fd,const void,*,buf,size_t count);,函数操作成功会返回写入的字节数,当出错的时候返回,1,。出错的原因有多种,像磁盘已满,或者文件大小超出系统的设置,例如,ext2,下的文件大小限制为,2Gbytes,等。,1write()函数介绍write()的函数原型如下。,22,2,write(),函数的例子,23,size,=write(fd,buf,strlen(buf);/*,将数据写入到文件,test.t
11、xt,中*,/,2write()函数的例子,23,3.2.7,获得文件状态,fstat(),函数,有的时候对文件操作的目的不是读写文件,而是要获得文件的状态。例如,获得目标文件的大小、权限、时间等信息。,stat,信息大多来自,i,节点。,1,fstat(),函数,介绍,2,stat(),函数的例子,3.2.7 获得文件状态fstat()函数有的时候对文件操,24,1,fstat(),函数介绍,在程序设计的时候经常要用到文件的一些特性值,例如,文件的所有者、文件的修改时间、文件的大小等。,stat(),函数、,fstat(),函数和,lstat(),函数可以获得文件的状态,其函数原型如下:,#
12、include,#include,#include,int stat(const char,*,path,struct stat,*,buf);,int fstat(int filedes,struct stat,*,buf);,int lstat(const char,*,path,struct stat,*,buf);,1fstat()函数介绍在程序设计的时候经常要用到文件的一,25,2,stat(),函数的例子,P.84,struct stat st;,if(-1=stat(test.txt,&st)/*,获得文件的状态,将状态值放入,st,中*,/,2stat()函数的例子 P.84,
13、26,3.2.8*,文件空间映射,mmap(),函数,mmap(),函数将文件映射到内存中的某一段,内存比磁盘快些。映射到的内存并不占用空间,仅仅占用一段地址空间。,1,mmap(),函数,介绍,2,munmap(),函数,介绍,3,mmap(),函数和,munmap(),函数的例子,3.2.8*文件空间映射mmap()函数mmap()函数,27,1,mmap(),函数介绍,mmap(),函数的原型如下。,#include,void,*,mmap(void,*,start,size_t length,int prot,int flags,int fd,off_t offset);,1mmap(
14、)函数介绍mmap()函数的原型如下。,28,2,munmap(),函数介绍,与,mmap(),函数对应的函数是,munmap(),函数,它的作用是取消,mmap(),函数的映射关系。其函数原型如下:,#include,int munmap(void,*,start,size_t length);,2munmap()函数介绍与mmap()函数对应的函数是m,29,3,mmap(),函数和,munmap(),函数的例子,29ptr=(char*)mmap(NULL,FILELENGTH,PROT_READ|,PROT_WRITE,MAP_SHARED,fd,0,);,37,munmap(ptr,
15、FILELENGTH);,/*,取消文件映射关系*,/,3mmap()函数和munmap()函数的例子,30,3.2.9,文件属性,fcntl(),函数,fcntl(),函数用于获得和改变已经打开文件的性质。,1,fcntl(),函数,介绍,2,F_GETFL,的,例子,3,F_SETFL,的,例子,4,F_GETOWN,的,例子,5,F_SETOWN,的例子,3.2.9 文件属性fcntl()函数fcntl()函数用,31,1,fcntl(),函数介绍,fcntl(),函数向打开的文件,fd,发送命令,更改其属性。函数原型如下:,#include,#include,int fcntl(int
16、 fd,int cmd);,int fcntl(int fd,int cmd,long arg);,int fcntl(int fd,int cmd,struct flock,*,lock);,1fcntl()函数介绍fcntl()函数向打开的文件fd,32,2,F_GETFL,的例子,(,P.89 fcntl-01.c),10,flags=fcntl(0,F_GETFL,0);,/,*获得标准输入的状态的状态*,/,if(flags 0),/*错误发生*/,printf(failure to use fcntln);,return-1;,accmode=flags/*获得访问模式*/,2F_GETFL的例子(P.89 fcntl-01.c),33,3,F_SETFL,的例子,P.90 fcntl-02.c,:用,fcntl,修改文件状态,加上,“,修改状态,”,int fd=open(test.txt,O_RDWR);,flags=fcntl(fd,F_GETFL,0);/*获得文件状态*/,flags|=O_APPEND;/*增加状态为可追加*/,flags=fcntl(fd,F_
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 踏春寻趣 乐享时光——春季旅游踏春出游活动
- 清明假期至安全不缺席风起正清明安全需守护
- 全国党员教育培训工作规划
- XX中小学公共卫生培训树立文明卫生意识养成良好卫生习惯
- 小学生常见传染病预防知识培训传染病的预防措施
- 3月18日全国爱肝日中西医结合逆转肝硬化
- 肝病健康宣教守护您的肝脏健康如何预防肝炎
- 垃圾分类小课堂教育绿色小卫士分类大行动
- 中小学班主任经验交流从胜任到优秀身为世范为人师表 立责于心履责于行
- 教师数字化转型理解与感悟教师数字化转型的策略与建议
- 团建小游戏团建破冰小游戏团队协作破冰游戏多人互动
- 教师使用deepseek使用攻略让备课效能提升
- 办公室会议纪要培训会议内容会议整理公文攥写
- 党员要注重培塑忠诚奋斗奉献的人格力量
- 橙色卡通风儿童春季趣味运动会