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

上传人:vc****3p 文档编号:252338193 上传时间:2024-11-14 格式:PPTX 页数:41 大小:855.84KB
收藏 版权申诉 举报 下载
linux教程-第3章--文件系统简介课件_第1页
第1页 / 共41页
linux教程-第3章--文件系统简介课件_第2页
第2页 / 共41页
linux教程-第3章--文件系统简介课件_第3页
第3页 / 共41页
资源描述:

《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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!