收藏 分销(赏)

Linux文件及目录.ppt

上传人:仙人****88 文档编号:13362121 上传时间:2026-03-07 格式:PPT 页数:23 大小:340KB 下载积分:10 金币
下载 相关 举报
Linux文件及目录.ppt_第1页
第1页 / 共23页
Linux文件及目录.ppt_第2页
第2页 / 共23页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Linux,文件,和目录,Linux,中的文件权限,在下图中我们可以看到常见几种文件的类型,以及它们相关的信息,关于文件权限我们可以在左边的黄框处看到:,Linux,中的文件权限,在下图中我们可以了解到具体的权限表示:,Linux,中的文件权限,我们可以使用,chmod,命令来更改文件权限如:,Chmod u+rwx,g+rwx,o+rwx,文件名;或,Chmod 777,文件名,-R,或,-recursive,递归处理,将指定目录下的所有文件及子目录一并处理,Linux,系统中文件类型,对于,Linux,系统中的常见文件:,我们可以使用,touch,命令来创建普通文件,当使用,chmod,命令可以赋予文件可执行的权限,使用,mkdir,创建目录,使用,ln,命令创建链接文件,Linux,中的链接文件,文件复制,cp,:,cp,命令是在真实的物理空间上重新划分出一个新同样大小的空间,分配不同的,inode,值。,链接文件,ln,:,硬链接:使用,ln,命令不加任何参数,会链接出一个新的文件,指向硬盘上的同一个物理空间,并且在文件的链接数上加,1,,如果某文件的链接数为,0,,那么此文件才会真正的从硬盘上删除。,inode,值:在,Linux,系统中每个文件都有一个,inode,值与其相对应,在使用,ln,命令的时候文件的,inode,值不改变。,软链接:使用,ln,s,命令产生的符号链接相当于,Windows,中的快捷方式。,cp,、,ln,、,ln,s,几组命令的区别,File1,File2,使用命令:,cp file1 file2,File1,使用命令:,ln file1 file2,File1,File2,使用命令:,ln,s file1 file2,链接数,1,(,1,),(,2,),(,3,),File2,文件,I/O,介绍,Linux,系统可以看成是一个由文件组成的系统,.,例如:设备,内存信息,目录,配置文件,文件,I/O,函数,打开文件、读文件、写文件等等。大多数,Linux,文件,I/O,只需用到,5,个函数:,open,、,read,、,write,、,lseek,以及,close,。,文件描述符,在,POSIX.1,应用程序中,整数,0,、,1,、,2,应被代换成符号常数:,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO,这些常数都定义在头文件,中。,文件描述符(,File Descriptor),对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个,非负整数,。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用,open,或,creat,返回的文件描述符标识该文件,将其作为参数传送给,read,或,write,。,每个进程在创建时,都默认打开三个文件描述符。,Standard input(0),standard output(1),standard error(2),open,函数,#include,#include,#include,int open(const char*pathname,int oflag);,int open(const char*pathname,int oflag,mode_t mode);,功能:打开文件,返回:若成功为文件描述符,若出错为,-1(,与,fopen,区别开,NULL,因为他返回的是,FILE,指针),open,函数,pathname,是要打开或创建的文件的名字。,oflag,参数可用来说明此函数的多个选择项。,对于,open,函数而言,仅当创建新文件时才使用第三个参数。,用下列一个或多个常数进行或运算构成,oflag,参数,(,这些常数定义在,头文件中,),:,O_RDONLY,只读打开。,(,互斥,),O_WRONLY,只写打开。,(,互斥,),O_RDWR,读、写打开。,(,互斥,),O_APPEND,每次写时都加到文件的尾端。,O_CREAT,若此文件不存在则创建它。使用此选择项时,需同时说明第三个参数,mode,,用其说明该新文件的存取许可权位。,O_EXCL,如果同时指定了,O_CREAT,,而文件已经存在,则出错。这可测试一个文件是否存在,如果不存在则创建此文件成为一个原子操作,open,函数,O_TRUNC,如果此文件存在,则将其长度截短为,0,。,O_NOCTTY,如果,pathname,指的是终端设备,则不将此设备分配作为此进程的控制终端。,O_NONBLOCK,如果,pathname,指的是一个,FIFO,、一个块特殊文件或一个字符特殊文件,则此选择项为此文件的本次打开操作和后续的,I/O,操作设置非阻塞方式。,O_SYNC,使每次,write,都等到物理,I/O,操作完成。,open,函数,文件权限,S _ IS U I D,执行时设置,-,用户,-I D,S _ IS G I D,执行时设置,-,组,-I D,S _ IS V T X,保存正文,S _ IRWXU,用户(所有者)读、写和执行,S _ IRUSR,用户(所有者)读,S _ IWUSR,用户(所有者)写,S _ IXUSR,用户(所有者)执行,S _ IRWXG,组读、写和执行,S _ IRGRP,组读,S _ IWGRP,组写,S _ IXGRP,组执行,S _ IRWXO,其他读、写和执行,S _ IROTH,其他读,S _ IWOT H,其他写,S _ IXOT H,其他执行,creat,函数,#include,#include,#include,int creat(const char*pathname,mode_t mode);,功能:创建一个新的文件。,返回:若成功为只写打开的文件描述符,若出错为,-1,。,注意,此函数等效于:,open(pathname,O_WRONLY|O_CREAT|O_TRUNC,mode);,creat,的一个,不足之处是它以只写方式打开所创建的文件,。,close,函数,#include,int close(int,filedes,),;,功能:关闭一个打开文件,返回:若成功为,0,,若出错为,-1,当一个进程终止时,它所有的打开文件都由内核自动关闭。很多程序都使用这一功能而不显式地用,close,关闭打开的文件。,read,函数,#include,ssize_t read(int fd,void*buf,size_t count);,功能:从打开文件中读数据,返回:读到的字节数,读不到字节返回,0,,若,count,为,0,返回,0,,若出错为,-1,。,有多种情况可使实际读到的字节数少于要求读字节数:,读普通文件时,在读到要求字节数之前已到达了文件尾端。例如,若在到达文件尾端之前还有,3 0,个字节,而要求读,1 0 0,个字节,则,read,返回,3 0,,下一次再调用,read,时,它将返回,0(,文件尾端,),。,当从终端设备读时,通常以行为单位,读到换行符就返回。,当从网络读时,网络中的缓冲机构可能造成返回值小于所要求读的字节数。,读操作从文件的当前位移量处开始,在成功返回之前,该位移量增加实际读得的字节数。,read,函数,write,函数,#include,ssize_t write(int fd,const void*buf,size_t count),;,功能;向打开文件写数据。,返回:若成功为已写的字节数,若出错为,-1,。,其返回值通常与参数,count,的值不同,否则表示出错。,write,出错的一个常见原因是:磁盘已写满,或者超过了对一个给定进程的文件长度限制。,对于普通文件,写操作从文件的当前位移量处开始。如果在打开该文件时,指定了,O_APPEND,选择项,则在每次写操作之前,将文件位移量设置在文件的当前结尾处。在一次成功写之后,该文件位移量增加实际写的字节数。,lseek,函数,每个打开文件都有一个与其相关联的“当前文件偏移量”。它是一个非负整数,用以度量从文件开始处计算的字节数。通常,读、写操作都从当前文件偏移量处开始,并使偏移量增加所读或写的字节数。按系统默认,当打开一个文件时,除非指定,O_APPEND,选择项,否则该位移量被设置为,0,。,可以调用,lseek,显式地定位一个打开文件。,lseek,仅记录当前文件的偏移量,而不会对文件进行,I/O,操作。,lseek,的偏移量可以超过当前文件的字节总数,从而在文件中产生一个,hole,lseek,函数,#include,#include,off_t lseek(int filesdes,off_t offset,int whence);,功能:设置文件内容读写位置,返回:若成功为新的文件位移指针,若出错为,-1,。,对参数,offset,的解释与参数,whence,的值有关。,若,whence,是,SEEK_SET,,则将该文件的文件位移指针设置为距文件开始处,offset,个字节。如果,offset,是,0,,就是回到文件首,返回值是,0,若,whence,是,SEEK_CUR,,则将该文件的位移量设置为其当前值加,offset,,,offset,可为正或负。如果,offset,是,0,,就是返回当前文件位移指针位置。,若,whence,是,SEEK_END,,则将该文件的文件位移指针设置为文件长度加,offset,,,offset,可为正或负。如果,offset,是,0,,就是返回当前文件位移尾指针位置。,lseek,函数,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服