zoukankan      html  css  js  c++  java
  • 学习笔记4

    第七章 文件操作
        7.1 文件操作级别
        文件操作分为五个级别,按照从低到高的顺序排列
            (1)硬件级别
                fdisk:将硬盘、U盘或SDC盘分区。
                mkfs:格式化磁盘分区,为系统做好准备。
                fsck:检查和维修系统。
                碎片整理:压缩文件系统中的文件。
            (2)操作系统内核中的文件系统函数
            (3)系统调用
            (4)I/O库函数
            (5)用户命令
            (6)sh脚本
        7.2 文件I/O操作
        7.3 低级别文件操作
            7.3.1 分区
            一个块存储设备,如硬盘、U盘、SD卡等,可以分为几个逻辑单元,称为分区。
            7.3.2 格式化分区
            为了存储文件,必须先为特定的文件系统准备好分区。
            7.3.3 挂载分区
        7.4 EXT2文件系统简介
        EXT2 2001 默认文件系统
        EXT3 2015 增加日志文件
        EXT4 磁盘块的分配
            7.4.1 EXT2文件系统数据结构
            Block#0:引导块 B0是引导块,文件系统不会使用它。
            7.4.2 超级块
            Block#1:超级块 B1是超级块,用于容纳关于整个文件系统的信息。
            7.4.3 块组描述符
            Block#2:块组描述符块
            7.4.4 位图
            Block#8:块位图 位图是用来表示某种项的位序列。
            Block#9:索引节点位图 一个索引节点就是用来代表一个文件的数据结构。
            7.4.5 索引节点
            Block#10:索引(开始)节点块
            直接块;间接块;双重间接块;三重间接块;
            7.4.6 目录条目
            目录包含dir_entry结构是一种可扩充结构
        7.5 编程示例
            7.5.1 显示超级块
            7.5.2 显示位图
            7.5.3 显示根索引节点
            7.5.4 显示目录条目
    第八章 使用系统调用进行文件操作
        8.1 系统调用
        8.2 系统调用手册页
        8.3 使用系统调用进行文件操作
            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 *pathname);
            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 unlink(char *pathname);
            symlink:为文件创建一个符号链接 int symlink(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:分离挂载的文件系统 intumount(char *dir);
            mknod:创建特殊文件 int mknod(char *path,int mode, int device);
        8.4 常用的系统调用
            stat:获取文件状态信息
                int stat(char *filename, struct stat *buf)
                int fstat(int filedes,struct stat *buf)
                int 1stat(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 writelint fd,char buf[ ], int count)
            lseek:重新定位文件描述符的读/写偏移量 int 1seek(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:设置文件创建掩码;文件权限为(mask&~umask) int umask(int umask);
        8.5 链接文件
            8.5.1 硬链接文件
      
            8.5.2 符号链接文件
      
        8.6 stat系统调用
            8.6.1 stat文件状态
            8.6.2 stat结构体
            8.6.3 stat与文件索引节点
            8.6.4 文件类型和权限
            8.6.5 opendir-readdir函数
            8.6.6 readlink函数
            8.6.7 is程序
        8.7 open-close-lseek系统调用
            open:打开一个文件进行读、写、追加 int open(char *file, int flags,int mode);
            close:关闭打开的文件描述符 int close(int fd);
            read:读取打开的文件描述符 int readlint fd, char buf[ 1,int count);
            write:写人打开的文件描述符 int writelint fd, char buf[ ],int count);
            lseek:将文件描述符的字节偏移量重新定位为偏移量 int 1seek(int fd, int offset, int whencel;
            umask:设置文件创建掩码;文件权限为(mask&~umask)
            8.7.1 打开文件和文件描述符
            open()打开一个文件进行读写或追加。它会返回一个进程可用的最小文件描述符,用于后续系统调用
            8.7.2 关闭文件描述符
            close()关闭指定的文件描述符fd,可重新用它来打开另一个文件。
            8.7.3 lseek文件描述符
        8.8 read()系统调用
        8.9 write()系统调用
        8.10 文件操作实例程序
            8.10.1 显示文件内容
            8.10.2 复制文件
            8.10.3 选择性文件复制
  • 相关阅读:
    [多项式算法](Part 1)FFT 快速傅里叶变换 学习笔记
    [多项式算法](Part 4)FWT 快速沃尔什变换 学习笔记
    [多项式算法](Part 2)NTT 快速数论变换 学习笔记
    [多项式算法](Part 5)分治FFT 学习笔记
    [HDU4316]Mission Impossible(计算几何/凸包/半平面交)
    NOI2019 游记 | 在NOI寻求AC是否搞错了什么?
    [Android] Activity的四种launchMode
    [Android] CardView的使用及兼容
    [Android] 记录相对位置布局
    [Android] ConstraintLayout
  • 原文地址:https://www.cnblogs.com/Ye-fen/p/15391286.html
Copyright © 2011-2022 走看看