首页 > 其他分享 >学习笔记4

学习笔记4

时间:2023-10-01 10:44:42浏览次数:30  
标签:文件 调用 写入 系统 笔记 学习 描述符 open

教材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系统调用用于向文件中写入数据。
    • 需要指定文件描述符、缓冲区和写入的长度。
    • 返回实际写入的字节数。

苏格拉底挑战






实践

标签:文件,调用,写入,系统,笔记,学习,描述符,open
From: https://www.cnblogs.com/wang-chen-kai/p/17738635.html

相关文章

  • 学习笔记4
    知识点归纳文件I/O操作是指对文件的输入和输出操作。文件输入操作可以读取一个文件的内容,以便后续的处理。常见的文件输入操作包括读取文本文件的内容、读取二进制文件的内容等。文件输出操作可以将处理结果写入到一个文件中。这可以包括将数据写入文本文件、将数据以二进制形......
  • 第四周学习笔记
    1.文件操作硬件级别fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。操作系统中的文件系统函数#前缀k表示内核函数kmount(),kumount() (mount/umountfilesystems)kmkdir(),krmdir() (make/remo......
  • 2023-2024-1 20231312 《 计算机基础与程序设计》第1周学习总结
    作业信息|这个作业属于哪个课程|<班级的链接>2023-2024-1-计算机基础与程序设计||这个作业要求在哪里|<作业要求链接>2023-2024-1计算机基础与程序设计第一周作业||这个作业的目标|<快速浏览一遍教材《计算机科学概论》,并提出自己不......
  • GDI+学习笔记
    Graphics对象(代表设备上下文)是唯一在绘图操作之间持续存在的对象。一个设计良好的使用GDI+的应用程序将需要在幕后做很多额外的工作,即它必须确保绘图有效地进行,并且在需要时更新屏幕,而不会发生任何不必要的绘图(这一点很重要,因为大多数绘图工作都会对应用程序造成很大的性能......
  • 信息安全系统设计与实现课程第七、八章学习笔记
    一、知识点归纳1.1、文件操作级别文件操作分为五个级别,按照从低到高的顺序排列如下:(1)硬件级别:硬件级别的文件操作包括:fdisk:用于将硬盘、U盘或SD卡等存储设备分区。mkfs:用于格式化磁盘分区,为文件系统做好准备。fsck:用于检查和维修文件系统的一致性。碎片整理:用于压缩......
  • 9.30 读书笔记
    《代码大全2》是一个经典的软件开发书籍,是一本非常有价值的资源,包含了许多软件开发中的重要主题。书中提醒读者以解决问题为导向,不仅仅是完成任务。防御式编程,防御式编程不是指不让别人批评代码,而是指确保要承担的责任,保证方法不会因为传入错误数据而破坏,看似微小的防范,收益可能......
  • 代码大全读书笔记
    代码质量和软件开发的关系:代码质量直接影响软件开发的效率和可维护性。良好的代码质量可以提高代码的可读性、可理解性和可扩展性,减少调试和修复错误的时间和工作量。编写高质量代码的原则:模块化和信息隐藏:将代码分解为小的、独立的模块,并通过封装隐藏内部实现细节。适当......
  • 学期2023-2024-1 学号20231315 《计算机基础与程序设计》第一周学习总结
    学期2023-2024-1学号20231315《计算机基础与程序设计》第一周学习总结作业信息这个作业属于哪个课程?2023-2024-1《计算机基础与程序设计》这个作业要求在哪里?2023-2024-1《计算机基础与程序设计》这个作业的目标?**快速浏览一遍教材计算机科学概论,课本每章提出......
  • 学习笔记4 截图+代码
    学习笔记4一、苏格拉底挑战二、学习时遇见的问题利用gpt解决三、实践stat和opendir-readdir四、实践代码使用stat结构体:#include<stdio.h>#include<sys/stat.h>intmain(){structstatfileStat;//获取文件属性......
  • lapce源码学习-编译调试
    master分支调试1、报错:`#![feature]`maynotbeusedonthestablereleasechannel2、Channel切换到nightly,报错:thetraitbound`file_type::FileType:std::sealed::Sealed`isnotsatisfied3、Channel切换到beta,编译ok,但提示不能调试rustupinstallbeta4、编译成功后,......