【王道考研操作系统】—文件的基本操作

简介: 【王道考研操作系统】—文件的基本操作


一、文件的逻辑结构

按文件是否有结构分为:无结构文件、有结构文件两种。

  • 无结构文件:文件内部的数据就是一系列二进制流或字符流组成。又称流式文件,如Windows操作系统中的.txt文件

  • 有结构文件:由一组相似的记录组成,又称记录式文件,每条记录又由若干个数据组成,如:数据库表文件,一般来说,每条记录有一个数据项作为关键字(作为识别不同记录的ID)


二、顺序文件

顺序文件:文件中的记录一个接一个地在逻辑上按顺序排列,记录可以是定长的或可变长的,各个记录在物理上可以顺序存储或链式存储。

三、文件目录

四、文件的基本操作

五、文件共享

注意:多个用户共享同一个文件,意味着系统中只有一份文件数据,并且只要某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。

多个用户复制同一个文件,那么系统中会有好几份文件数据,其中一个用户修改了自己的那份数据,对其他用户的文件数据并没有影响。

六、文件共享的两种方式

索引结点:是一种文件目录瘦身策略,由于检索文件需要用到文件名,因此可以将除了文件名之外的其他信息放到索引结点中,这样目录项就只需包含文件名、索引结点指针。

七、文件保护—口令保护

  • 口令保护:为文件设置一个口令(如:abc111),用户请求访问该文件时必须提供口令。
  • 口令一般存放在文件对应的FCB或索引结点中,用户访问文件前需要先输入口令,操作系统会将用户提供的口令与FCB中存储的口令进行对比,如果正确,则允许用户访问该文件。
  • 优点:保存口令的空间开销不多,验证口令的空间开销很小。
  • 缺点:正确的口存放在系统的内部,不安全。

七、文件保护—加密保护

  • 使用某个密码对文件进行加密,在访问文件时需要提供正确的密码才能对文件进行正确的解密。

  • 优点:保密性强,不需要在系统中存储密码
  • 缺点:编码/译码,或者说加密/解密要花费一定的时间

八、文件保护—访问控制

  • 系统会在每个文件的FCB(或索引结点)中增加一个访问控制列表(Access-Control
    List,ACL),该表记录了各个用户可以对文件执行哪些操作。

九、文件系统的结构层次


相关文章
|
2月前
|
Python
python如何使用os模块进行文件和目录操作?
python如何使用os模块进行文件和目录操作?
|
28天前
|
缓存 Linux Windows
初识Linux操作系统(根目录下的重要文件)(命令提示符的含义)
Linux系统基于"一切皆文件"的理念,重要文件分布在如/root(root用户目录)、/home(普通用户目录)、/etc(应用配置)、/dev(设备文件)、/boot(内核及启动文件)、/proc(动态系统信息)、/lib64(库文件)、/opt(软件存放)、/tmp(临时文件)。"[root@localhost ~]#"代表管理员在root目录,"$"代表普通用户。创建新用户用`useradd`命令。调节终端字体大小:Ctrl+Shift++增大,Ctrl+减号缩小。绝对路径从根目录开始,相对路径从当前目录开始。
|
11天前
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
10 0
|
1月前
|
Unix 关系型数据库 API
Python OS 文件/目录方法
Python OS 文件/目录方法
|
20天前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错合集之RocksDB在尝试打开更多文件时达到了操作系统允许的最大打开文件数限制,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
Ubuntu Linux iOS开发
LabVIEW在不同操作系统上使VI、可执行文件或安装程序
LabVIEW在不同操作系统上使VI、可执行文件或安装程序
30 3
|
2月前
|
Python
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存
【5月更文挑战第12天】在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存在,该函数对路径进行检查,存在则返回True,不存在则返回False。示例代码展示了如何检查'example.txt'文件是否存在并相应打印消息。此外,`os.path.isfile()`用于确认路径是否为文件,仅当是文件时返回True,否则返回False,同样配以示例说明其用法。
59 2
|
2月前
|
Linux Shell
Linux操作系统下查找大文件或目录的技巧
Linux操作系统下查找大文件或目录的技巧
22 2
|
2月前
|
Python
Python OS 文件/目录方法
Python OS 文件/目录方法
|
2月前
|
Go API 开发者
Golang深入浅出之-文件与目录操作:os与path/filepath包
【4月更文挑战第26天】Go语言标准库`os`和`path/filepath`提供文件读写、目录操作等功能。本文涵盖`os.Open`, `os.Create`, `os.Mkdir`, `filepath.Join`等API的使用,强调了文件关闭、路径处理、并发写入和权限问题的处理,并给出实战代码示例,帮助开发者高效、安全地操作文件与目录。注意使用`defer`关闭文件,`filepath`处理路径分隔符,以及通过同步机制解决并发写入冲突。
46 2