学习笔记4

知识点归纳

第7章 文件操作

  1. 文件操作分为五个级别,按照从低到高的顺序排列如下
    硬件级别∶硬件级别的文件操作
    操作系统内核中的文件系统函数:每个操作系统内核均可为基本文件操作提供支持。
    系统调用:用户模式程序使用系统调用来访问内核函数。
    I/O库函数:C语言库提供一系列标准的I/O函数,提高运行效率。
    用户命令:用户可以使用Unix/Linux命令来执行文件操作。
    sh脚本:用sh语言编写的程序,可通过命令解释程序sh来执行。
  2. 文件I/O操作
    分为内核的以及用户进行的操作
  3. 低级别文件操作
  • 分区
    ​ 一个块存储设备可以分为几个逻辑单元,称为分区。各分区可以格式化为特定的文件系统,也可以安装在不同的操作系统上。分区表位于第一个扇区的字节便宜446(0x1BE)处,该山区陈伟设备的主引导记录(MBR)。表有四个目录,每个目录由一个16字节的分区结构体定义。
  • fdisk将一个存储设备进行分区。而仅仅使用fdisk完成的分区并不能使用,还需要格式化分区。格式化分区的作用是为特定的文件系统准备分区,来存储文件。使用的是mkfs命令。
  1. EXT2文件系统
    Linux使用的默认文件系统就是ext2。ext2文件系统总共有1440个块,每个块大小1KB。

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

  • 操作系统内核中的文件系统函数
  • 系统调用函数
  • 链接文件
  • stat系统调用
    简单的系统调用:
    access:检査对某个文件的权限
int access(char •pathname, int mode);

chdir:更改目录

int chdir(const char *path);

chmod:更改某个文件的权限

int chmod(char *path, mode_t mode);

chown:更改文件所有人

int chown(char *name, int uid, int gid);

chroot:将(逻辑)根目录更改为路径名

int chroot (char *patiiname);

getcwd:获取CWD的绝对路径名

char *getcwd(char *buf, int size);

mkdir:创建目录

int mkdir(char *pathname, mode_t mode);

rmdir:移除目录(必须为空)

int rmdir (char *pathname);

link:将新文件名硬链接到旧文件名

int link(char *oldpath, char *newpath);

unlink:减少文件的链接数;如果链接数达到0,则删除文件

int uniink(char *pathname);

symlink:为文件创建一个符号链接

int symliak(char *oldpath, char *newpath);

rename:更改文件名称

int rename(char *oldpath, char *newpath)

utime:更改文件的访问和修改时间

int utime(char *pathname, struct utimebuf *time)

以下系统调用需要超级用户权限:
mount:将文件系统添加到挂载点目录上

int mount(char *specialfile, char *mountDir)/

umount:分离挂载的文件系统

int umount(char *dir);

mknod:创建特殊文件

int mknod(char *path, int mode, int device);

苏格拉底挑战

实践过程

让chatgpt给我些实践代码





遇到的问题和解决

误入根目录,找不到主目录 (cd /进入根目录,cd ~进入主目录)



posted @ 2023-09-17 22:19  LLLZTTT  阅读(8)  评论(0编辑  收藏  举报
$