学习笔记4

news/发布时间2024/7/15 4:02:12

教材7、8章知识点

  1. 文件操作级别:

    • 硬件级别
    • 操作系统内核中的文件系统函数
    • 系统调用
    • I/O库函数
    • 用户命令
    • sh脚本
  2. 文件I/O操作:

    • 打开文件:使用open系统调用打开文件,并返回文件描述符。
    • 关闭文件:使用close系统调用关闭文件描述符。
    • 读取文件:使用read系统调用从文件中读取数据。
    • 写入文件:使用write系统调用向文件中写入数据。
    • 定位文件指针:使用lseek系统调用移动文件指针的位置。
  3. 低级别文件操作:

    • 分区:将硬盘划分为多个逻辑区域,每个分区可以独立使用。
    • 格式化分区:对分区进行格式化,以便于文件系统的创建和使用。
    • 挂载分区:将分区与文件系统关联,使其可以被操作系统识别和访问。
  4. EXT2文件系统:

    • 数据结构:包括超级块、块组描述符、位图、索引节点、目录条目等。
    • 超级块:存储文件系统的整体信息,如分区大小、块大小、索引节点数量等。
    • 块组描述符:存储每个块组的信息,如空闲块数量、空闲索引节点数量等。
    • 位图:记录每个块或索引节点的使用情况。
    • 索引节点:存储文件的元数据,如权限、大小、时间等。
    • 目录条目:存储目录中的文件名和对应的索引节点。
  5. 系统调用:

    • 系统调用是操作系统提供给应用程序的接口,用于访问底层系统资源。
    • 系统调用可以用C语言编写,通常通过软中断或陷阱指令触发。
    • 系统调用的执行过程包括参数传递、内核态切换、系统调用处理、返回结果等。
  6. 系统调用手册页:

    • 系统调用手册页是系统提供的文档,包含了系统调用的详细信息。
    • 可以使用man命令查看系统调用手册页,如man 2 open。
  7. 使用系统调用进行文件操作:

    • 打开文件:使用open系统调用打开文件,并指定打开模式和权限。
    • 关闭文件:使用close系统调用关闭文件描述符。
    • 读取文件:使用read系统调用从文件中读取数据,并指定读取的长度。
    • 写入文件:使用write系统调用向文件中写入数据。
  8. 常用的系统调用:

    • open:打开文件。
    • close:关闭文件。
    • read:读取文件数据。
    • write:写入文件数据。
    • lseek:定位文件指针。
    • stat:获取文件的状态信息。
  9. 链接文件:

    • 链接是指将一个文件名与一个文件关联起来。
    • 可以通过硬链接和软链接两种方式进行文件的链接。
    • 硬链接是指将一个文件名与一个索引节点关联,可以通过多个文件名访问同一个文件数据。
    • 软链接是指创建一个新的文件名,指向原文件名所在的路径。
  10. stat系统调用:

    • stat系统调用用于获取文件的状态信息,如文件类型、权限、大小、时间等。
    • 可以通过stat结构体中的成员变量获取文件的各种属性。
  11. open-close-lseek系统调用:

    • open系统调用用于打开文件,并返回文件描述符。
    • close系统调用用于关闭文件描述符。
    • lseek系统调用用于定位文件指针的位置。
  12. read()系统调用:

    • read系统调用用于从文件中读取数据。
    • 需要指定文件描述符、缓冲区和读取的长度。
    • 返回实际读取的字节数。
  13. write()系统调用:

    • write系统调用用于向文件中写入数据。
    • 需要指定文件描述符、缓冲区和写入的长度。
    • 返回实际写入的字节数。

苏格拉底挑战






实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.jwkm.cn/p/42473544.html

如若内容造成侵权/违法违规/事实不符,请联系宁远站长网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

机器学习之KNN算法入门

简介 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法。 它的工作原理是:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后…

LeetCode 周赛上分之旅 #48 一道简单的树上动态规划问题

⭐️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode …

代码链接与实践截图

include <fcntl.h> include <unistd.h> int main() { int file_desc = open("test.txt", O_RDONLY); if (file_desc < 0) { // 错误处理 } // 进行其他操作... close(file_desc); return 0;} include <fcntl.h> include <unistd.h> int m…

vue:el-table在resize时报错(element-plus@2.3.12)

一,报错信息: Uncaught runtime errors:ERROR ResizeObserver loop completed with undelivered notifications. at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299:58) at eval (webpack-internal:///./node_modules/webpac…

传递函数变换到状态空间

1. 分子为1的传递函数 例: \[G(s)=\frac{1}{s^3+a_2s^2+a_1s+a_0} \]首先写成输入输出关系: \[(s^3+a_2s^2+a_1s+a_0)Y(s)=U(s) \]对应的微分方程: \[\dddot{y}(t)+a_2\ddot y(t)+a_1\dot y(t)+a_0y(t)=u(t)\\ \dddot{y}(t)=-a_2\ddot y(t)-a_1\dot y(t)-a_0y(t)+u(t)\\ \]令…