20211128《信息安全系统设计与实现》第七、八章笔记

发布时间 2023-10-01 20:20:30作者: 20211128李杰

一、任务内容

自学教材第7,8章,提交学习笔记(10分),评分标准如下

1. 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分)

“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”

核心是要求GPT:“请你以苏格拉底的方式对我进行提问”

然后GPT就会给你提问,如果不知道问题的答案,可以反问AI:“你的理解(回答)是什么?”

如果你觉得差不多了,可以先问问GPT:“针对我XXX知识点,我理解了吗?”

GPT会给出它的判断,如果你也觉得自己想清楚了,可以最后问GPT:“我的回答结束了,请对我的回答进行评价总结”,让它帮你总结一下。

2. 问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图(3分)

3. 实践过程截图,代码链接(2分)

4. 其他(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(1分)

二、知识点归纳以及自己最有收获的内容

(一)知识点归纳

第七章:文件操作

7.1 文件操作级别

 

在Linux操作系统中,文件操作级别可以分为以下四个层次:

1、块设备层级别:

该层级别涉及硬件设备和底层操作系统。它包括磁盘、文件系统和驱动程序等。

块设备层级别的操作包括磁盘分区、格式化、挂载和访问权限等。

2、文件系统层级别:

在文件系统层级别,文件和目录被组织成层次结构,形成文件系统。

操作包括创建、复制、移动、重命名、删除文件和目录等。

3、用户层级别:

用户层级别是用户通过操作系统提供的接口进行文件管理和操作的层次。

操作包括创建、编辑、保存、打开、关闭文件等。

4、应用层级别:

应用层级别是在特定应用程序中进行的文件操作。

操作包括读取和写入文件、导入和导出文件、转换文件格式等。

在Linux文件操作级别中,每个层次都有不同的操作和功能。块设备层级别主要由系统管理员或高级用户处理,涉及到底层硬件和操作系统。文件系统层级别由系统管理员和普通用户共同管理。用户层级别和应用层级别则主要由普通用户操作,用于自己的个人文件管理和特定应用程序的文件操作。

 

7.2 文件I/O操作

 

文件I/O操作是指对文件进行读取和写入的操作。它包括以下内容:

1、打开文件:

使用相应的函数或方法打开文件,指定文件路径和打开模式(只读、写入、追加等)。

2、读取文件:

可以按行、按字符、按字节或按块进行文件读取操作。

读取的数据可以存储在变量中供后续处理使用。

3、写入文件:

将数据按照指定格式和方式写入文件中,可以按行、按字符、按字节或按块进行写入操作。

4、关闭文件:

在完成文件读取和写入操作后,关闭文件以释放相关资源。

5、错误处理:

处理可能出现的错误情况,如文件不存在、权限不足等。

可以使用异常处理机制来捕获和处理错误。

6、文件指针定位:

可以通过文件指针定位到文件的特定位置,进行读取或写入操作。

文件I/O操作是许多编程语言和操作系统提供的基本功能。通过文件I/O操作,可以读取和写入各种类型的文件,例如文本文件、二进制文件等。文件I/O操作在日常开发和系统管理中非常常见,用于处理配置文件、读取用户输入、存储日志等任务。

 

7.3 低级别文件操作

 

低级别文件操作是指使用底层的文件系统接口进行文件读写的操作,相比高级别文件操作(如文件I/O),它更接近于对文件的原始操作。以下是低级别文件操作的主要内容:

1、打开文件:

使用底层的文件系统接口打开文件,需要指定文件路径、打开模式和其他相关参数。

2、读取文件:

使用底层的文件系统接口进行字节级别的文件读取,可以按照指定的字节数读取数据。

需要自行处理文件指针的位置和数据的解析。

3、写入文件:

使用底层的文件系统接口进行字节级别的文件写入,可以按照指定的字节数写入数据。

需要自行处理文件指针的位置和数据的编码。

定位文件指针:

可以使用底层的文件系统接口定位文件指针到指定位置,以便读取或写入数据。

4、关闭文件:

使用底层的文件系统接口关闭文件,释放相关资源。

5、错误处理:

需要手动处理可能出现的错误,如文件不存在、权限不足等。

低级别文件操作相对较底层,需要对文件系统的工作原理有一定的了解,并且通常使用更多的底层函数或系统调用。它提供了更灵活的控制和更高的性能,但也需要更多的编码和处理细节。

总之,低级别文件操作适用于对文件进行更细粒度控制和处理的场景,对于一般的文件读写任务,高级别文件操作更常被使用。

 

 

 

第八章:使用系统调用进行文件操作

Linux使用系统调用进行文件操作时,主要涉及以下内容:

打开文件:使用open()系统调用来打开文件,并指定打开方式(读取、写入、追加等)和权限。

关闭文件:使用close()系统调用来关闭已经打开的文件。

读取文件内容:使用read()系统调用从文件中读取数据,并将数据存储到缓冲区中。

写入文件内容:使用write()系统调用将数据从缓冲区写入到文件中。

移动文件指针:使用lseek()系统调用可以移动文件指针,改变读取或写入的位置。

创建和删除文件:使用creat()系统调用可以创建新文件,使用unlink()系统调用可以删除已有文件。

修改文件权限:使用chmod()系统调用可以修改文件的权限。

检查文件状态:使用stat()系统调用可以获取文件的元数据信息,如大小、权限和最后修改时间等。

目录操作:使用opendir()系统调用打开目录,readdir()系统调用读取目录内容,closedir()系统调用关闭目录。

重命名和移动文件:使用rename()系统调用可以重命名文件或将文件移动到另一个目录。

创建和删除目录:使用mkdir()系统调用可以创建目录,使用rmdir()系统调用可以删除空目录。

(二)苏格拉底挑战

 

 

 

 

 

 

 

 

 

 

 

 

 

三、问题与解决思路

 

四、实践过程