首页 > 其他分享 >学习笔记4 第七八章的自学归纳

学习笔记4 第七八章的自学归纳

时间:2023-09-28 22:23:51浏览次数:38  
标签:文件 八章 int 笔记 char 描述符 调用 自学 buf

第7章文件操作

文件操作五个级别

1.硬件级别:普通用户不会接触,但它是创建和维护系统不可缺少的工具
fdisk、mkfs、fsck

2.操作系统内核中的文件系统函数
每个操作系统内核均可为基本文件操作提供支持。在类unix函数中前缀k表示内核函数

3.系统调用
用户模式程序使用系统调用来访问内核函数
其中常见的文件操作级别的系统调用包括:
打开和关闭文件:通过系统调用打开文件,获取文件描述符,并在使用完后通过系统调用关闭文件。
读取和写入文件:使用系统调用从文件中读取数据或将数据写入文件。
定位文件指针:通过系统调用设置文件指针的位置,以便进行随机访问。
创建和删除文件:使用系统调用创建新文件或删除已存在的文件。
修改文件权限:通过系统调用修改文件的访问权限(读、写、执行)。

文件的I/O操作

其中主要分为两块空间:一块为内核空间,另一块为用户空间。

低级别文件操作

1.分区:一个块储存设备,可以分为几个逻辑单元。
大部分的引导程序都可以配置为从不同的分区引导不同的操作系统
分区表位于第一个扇区的字节偏移446处,该扇区称为设备的主引导记录
分区为扩展类型(类型编号=5),那么它可以划分为更多分区,扩展分区在扩展分区区域内形成一个链表
每个扩展分区的第一个扇区是一个本地MBR,每个MBR的446处也有一个分区表
2.格式化分区:为了存储文件,必须先为特定地文件系统准备好分区
3.挂载分区:man&loseup:显示用于系统管理的loseup使用工具命令

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

系统调用

两种模式:内核模式和用户模式
内核模式是操作系统运行的特权模式,具有更高的权限和访问系统资源的能力。在内核模式下,操作系统可以执行特权指令、访问底层硬件等。
用户模式是普通应用程序运行的模式,具有较低的权限和受限的访问权限。在用户模式下,应用程序不能直接访问操作系统的敏感资源,如硬件设备或其他进程的内存空间。

使用系统调用进行文件操作

系统调用必须由程序发出。用法就是像普通函数调用一样。
内核的系统调用处理程序根据系统调用编号将调用路由到一个相应的内核函数。
当进程结束执行内核函数时,会返回到用户模式,并得到所需的结果。

常用的系统调用

系统调用操作
stat:获取文件状态信息
int stat(char *filename, struc stat *buf)
int fstat(int filedes, struct stat *buf)
int lstat(char *filename, struct stat *buf)
open:打开一个文件进行读、写、追加
int open(char *file, int flags, int mode)
close:关闭打开的文件描述符
int close(int fd)
read:读取打开的文件描述符
int read(int fd, char buf[ ], int count)
write:写入打开的文件描述符
int write(int fd, char buf[ ], int count)
lseek:重新定位文件描述符的读/写偏移量
int lseek(int fd, int offset, int whence)
dup:将文件买哦舒服复制到可用的最小描述符编号中
int dup(int oldfd)
dup2:将oldfd复制到newfd中,如果newfd已打开,先将其关闭
int dup2(int oldfd, int newfd)
link:将新文件硬链接到旧文件
int link(char *oldPath, char *newPath
unlink:取消某个文件的链接;如果文件链接数为0,则删除文件
int unlink(char *pathname)
symlink:创建一个符号链接
int symlink(char *target, char *newpath)
readlink:读取符号链接文件的内容
int readlink(char *path, char *buf, int bufsize)
umask:设置文件创建掩码
int umask(int umask)

链接文件

1.硬链接文件
创建从newpath到oldpath的硬链接:
ln oldpath newpath
系统调用:
link(char *oldpath, char *newpath)
硬链接文件会共享文件系统中相同的文件表示数据结构
unlink(char *pathname)
减少文件的链接数

2.符号链接文件
创建从newpath到oldpath的软链接或符号链接:
ln -s oldpath newpath
系统调用:
symlink(char *oldpath, char *newpath)
适用情况
通过一个较短的名称来访问一个经常使用较长路径名称
将标准动态库名称链接到实际版本的动态库

stat系统调用

1.stat文件状态
2.stat结构体
所有的stat系统调用都以stat结构体形式返回信息
3.opendir-readdir函数
opendir()返回一个DIR指针drip
每个readdir(dirp)调用返回一个dirent指针,指向目录中的下一个条目的dirent结构体
4.readlink函数
读取符号链接文件的内容
5.ls程序
显示目录下的文件信息

open-close-lseek系统调用

open:打开一个文件进行读、写、追加
int open(char *file, int flags, int mode)
close:关闭打开的文件描述符
int close(int fd)
read:读取打开的文件描述符
int read(int fd, char buf[ ], int count)
write:写入打开的文件描述符
int write(int fd, char buf[ ], int count)
lseek:重新定位文件描述符的读/写偏移量
int lseek(int fd, int offset, int whence)
umask:设置文件创建掩码,文件权限为(mask&~umask)

read()系统调用

int read(int fd, void *buf, int nbytes);
read()将n个字节从打开的文件描述符读入用户空间中的buf[]

write()系统调用

int write(int fd, void *buf, int nbytes);
write()将n个字节从用户空间中的buf[ ]写入文件描述符,必须打开该文件描述符进行写、读写或追加

遇见的问题



苏格拉底提问





标签:文件,八章,int,笔记,char,描述符,调用,自学,buf
From: https://www.cnblogs.com/889w/p/17731010.html

相关文章

  • 信息安全系统设计与实现——学习笔记4
    任务详情:自学教材第7,8章,提交学习笔记(10分)Part1知识点归纳&GPT提问知识点归纳chap7文件操作级别硬件级别fdiskmkfsfsck碎片整理操作系统内核中的文件系统函数系统调用I/O库函数用户命令sh脚本文件I/O操作低级别文件操作分区Command(mforhelp):m---......
  • 信息安全系统设计与实现 学习笔记4
    文件操作文件操作级别硬件级别:fdisk将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。操作系统内核中的文件系统函数kmount(),kumount()kmkdir(),krmdir()系统调用用户模式使用系统调用来访问内核函数......
  • 阅读笔记1
    《程序员的修炼之道:从小工到专家》这本书第一章主要介绍了程序员的成长路径和所需技能。通过阅读这一章,我深刻认识到程序员的成长不是一个简单的过程,而是一个需要不断努力和修炼的旅程。在这一章中,作者们首先介绍了程序员的成长路径,即从小工到专家的发展历程。这个历程包括掌握基......
  • 阅读笔记2
    《程序员的修炼之道:从小工到专家》的第二章节聚焦于“从问题到解决方案”。这一章节主要讲述了如何从问题的初始状态到最后解决问题的过程,强调了理解问题、找出解决方案以及实现解决方案的重要性。在这一部分,作者详细讨论了如何理解和描述问题。首先,他们提出要充分理解问题的本质......
  • openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内
    openGauss学习笔记-83openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划本节描述了为满足特定应用程序需求,在评估、估计和规划内存和存储容量数量时,需要注意的事项和准则,以及影响所需内存数量的各种数据,例如计划表的数据和索引大小、维持事务管理的内存......
  • 《Unix/Linux系统编程》教材学习笔记第七章、第八章
    chapter7文件操作级别文件操作分五个级别,从低到高排序如下:1.硬件级别:硬件级别的文件操作包括fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。其中大多说是针对系统的实用程序。2.操作系统内核中......
  • 学习笔记4
    第七、八章文件操作文件操作级别1.硬件操作  大多数是针对系统的实用程序2.操作系统内核中的文件系统函数  每个操作系统内核均可为基本文件操作提供支持3.系统调用  用户模式程序使用系统调用来访问内核函数  每个库函数都会发出一个系统调用,使进程进入内核模式......
  • [笔记]组成原理_2024年考纲
    一、计算机系统概述(一)计算机系统层次结构1.计算机系统的基本组成2.计算机硬件的基本结构3.计算机软件和硬件的关系4.计算机系统的工作原理“存储程序”工作方式,高级语言程序与机器语言程序之间的转换,程序和指令的执行过程。(二)计算机性能指标吞吐量、响应时间;CPU时钟周期、......
  • 9月《程序员修炼之道:从小工到专家》阅读笔记
    一、注重实效的哲学1我的源码让猫吃了无论是什么任务,我们都可能出现错误,这时,我们需要尽可能处理好他们以示诚实坦率。我们必须承担责任,一味的推卸责任毫无用处。要找各种选择,而非借口。2软件的熵熵在软件中代表“软件腐烂”。究其原因,最重要为开发项目时的心理/文化。那么为什......
  • 学习笔记4
    第7章文件操作——教材知识点归纳7.1文件操作级别linux中文件操作可以分为5个级别,从低等级到高等级分别为:硬件级别:fdisk:将盘进行分区。mkfs:格式化磁盘分区。fsck:检查系统。碎片整理:压缩文件系统中的文件内核中的文件系统函数由k开头,从操作系统内核层面提供文件操作支......