- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT16
Linux 文件编程
一.Linux文件结构:
在linux中一切皆文件。与UNIX一样,Linux环境中的文件具有特别重要的意义,因为它们为操作系统的服务和设备提供了一个简单而统一的接口。
这就意味着,通常,程序完全可以像使用文件那样使用磁盘、串行口、打印机和其他设备。
Linux系统把磁盘分成为几个的partition区域,每个partition区域分成若干个Group来方便进行管理。每个group里面都有inode以及block区域。每个partition里面的inode以及block分别的都进行编号。文件系统中实际的使用的都是这些的编号。
一般的,inode区域是存放文件信息的数据区域;block区域才是实际的存放文件实际数据的地方。Inode中存放对应文件的权限、属性、时间(atime,ctime,mtime)信息等,以及文件的实际存放区域的所有block号码。
目录的inode中存放此目录的相关的权限属性等信息以及其对应的block区域的号码??目录的block数据区域中存放目录下对应的档案以及子目录的文件名以及其各自对应的inode号码。
档案的inode中存放的是档案本身的权限以及属性等的信息,以及档案实际存放数据区域的block的号码;而档案的block数据区域中存放的才是档案的具体的内容数据信息。
1.目录:
Linux是以文件(档案)的形式进行系统管理的。而档案文件的存放需要inode以及block,档案的存放除了存储其本身包含的内容以外,它还会有一个名字和一些属性,即“管理信息”,例如文件的创建/修改 日期和它的访问权限等。这些属性被保存在文件的inode(结点)数据结构中,它是文件系统中的一个特殊的数据块,它同时还包含文件的长度和文件在磁盘上的存放位置。系统使用的是文件的inode编号,目录结构仅仅是出于方便人们使用的目的而文件命名。
目录,是用来保存其他文件的结点号和名字也有其专属的inode以及block。目录文件中的每个数据项都指向某个文件的节点,删除文件名就等以删除对应的链接(ls –id xxx命令用于查看xxx档案/目录,所对应的inode节点号码),你可以通过使用命令ln 在不同的目录中创建指向同一个文件的链接。
Linux系统中删除文件只不过是删除的其所在目录的block中的inode节点指向。而原来此档案所对应的block数据块中的内容并没有被清除。如果指向某个文件的链接数(即ls -l 命令的输出中跟在访问权限后面的那个数字)变为零,就表示该节点以及其指向的数据不再被使用,磁盘上的相应位置就会被即为可用的空间。
文件被安排在目录中,目录中可能还包含子目录。这些构成了我们所熟悉的文件系统层次结构。用户(比如:project)通常会把自己的文件保存在主目录中,可能是目录/root/project,该目录可以再进一步划分为电子邮件、商业信函、工具程序等子目录。许多UNIX和linux的shell命令都允许通过一个简单的符号,让用户能够进入自己的主目录,这就是波浪线符号~。要想进入他人的主目录,就键入~usr(~加用户名)即可。如你所知,每个用户的主目录通常是一个上层目录的子目录,这个上层目录专为此目的而创建,在这个例子中它就是/root目录。
2.文件和设备
硬件设备在Linux操作系统中通常被表示(映射)为文件。例如:CD-ROM设备在开机引导时被加载为/dev/hdc,作为超级用户(root),你可以通过如下命令将CD-ROM驱动器挂载为一个文件:
# mount -t iso9660 /dev/hdc /mnt/cdrom
# cd /mnt/cdrom
此命令即把CD-ROM挂载为/mnt/cdrom目录下的文件结构。然后,你就可以像操作普通文件那样在CD-ROM目录中漫游,只不过该目录中的内容是只读(read-only)的。
UNIX和Linux中比较重要的设备文件有三个:
①/dev/console ②/dev/tty ③/dev/null
(1) /dev/console
这个设备代表的是系统控制台。错误信息和诊断信息通常会被发送到这个设备。每个UNIX系统都会有一个指定的终端或显示屏用接收控制台消息。过去,它可能是一台专用的打印终端。在现代的工作站和Linux上,它通常是“活跃”的虚拟控制台;而在X窗口系统中,它会使屏幕上一个特殊的控制台窗口。
(2) /dev/tty
如果一个进程有控制终端的话,那么特殊文件/dev/tty 就是这个控制终端(键盘和显示屏,或者键盘和窗口)例如:通过cron 运行的进程就没有控制终端,所以它们不能打开/dev/tty
在能够使用该设
您可能关注的文档
最近下载
- 爱护我们的人民币.ppt VIP
- GJB9001C:2017质量保证大纲.doc VIP
- 可用性人因设计研究报告 .pdf VIP
- 设计概论讲课课件(第三版杨晓琪).pptx VIP
- 西师版六年级数学教案(上学期)全册教学案.pdf VIP
- 1.1+坚持改革开放(课件)-2025-2026学年九年级道德与法治上册(统编版).pptx VIP
- 2025-2026学年初中数学人教版2024八年级上册-人教版2024教学设计合集.docx
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf VIP
- 创新创业基础(高职高专版)PPT教学完整课件.ppt
- 人教版小学六年级数学上册全册教案 -(最全).doc VIP
文档评论(0)