zoukankan      html  css  js  c++  java
  • 七-八章学习笔记

    第七章:
    fopen()包括一个FILE结构体,文件描述符fd,一个fbuf[BLKSIZE]和一些控制变量
    fread(ubuf,size,nitem,fp)将nitem个size字节读取到ubuf,通过:把数据从FILE的fbuf复制到ubuf上,若足够则返回
    若fbuf没有更多数据,则发出(fd,fbf,BLKSIZE)系统调用,将文件数据块从内核读取到fbuf是,然后将数据复制到ubuf直到无数据可复制或数据足够
    fwrite(ubuf,size,nitem,fp)将数据从ubuf复制到fbuf
    Block:
    B0:引导块,文件系统不会使用它。它用于容纳从磁盘引导操作系统的引导程序。
    B1:超级块,用于容纳关于整个文件系统的信息。
    B2:块组描述符块。EXT2将磁盘块分为几个组。每个组有8192个块(硬盘上的大小为32k)。每组用一个块组描述符结构体描述。
    B8:块位图。位图用于分配和回收项。
    B9:索引节点位图。一个索引节点就是用于代表一个文件的数据结构。
    B10:索引(开始)节点块
    第八章
    一些基本的系统调用函数:
    int mkdir(char *pathname, int privilege);创建以pathname为名的路径,其权限为privilege。返回-1为失败,返回1为成功。
    int rmdir(char *pathname);移除目录(此目录必须为空目录)。
    int chdir(char *pathname);更改当前路径到pathname。
    char *getcwd(char *buf,size_t size);将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数size为buf的空间大小。
    int access(const char *pathname, int mode);access函数用来判断指定的文件或目录是否存在。
    int chmod(char *path, mode_t mode);更改某个文件的权限。
    int chown(char *name, int uid, int gid);更改某个文件的所有者。
    int link(char *oldpath, char *newpath);链接新文件名到旧文件名(硬链接)
    int unlink(char *pathname);减少文件链接数,如果链接数为0,就删除文件
    int symlink(char *oldpath, char *newpath);为文件创建一个符号链接
    int rename(char *oldpath, char *newpath);重命名文件
    int utime(char *pathname, struct utimebuf *time);更改文件访问时间和修改时间。
    链接文件

    (1) 硬链接文件
    命令 ln oldpath newpath创建从newpath到oldpath的硬链接。
    硬链接文件会共享文件系统中相同的文件表示数据结构(索引节点)。文件链接数会记录链接到同一索引节点的硬链接数量。硬链接仅适用于非目录文件。否则,它可能会在文件系统名称空间中创建循环,这是不允许的。
    (2) 符号链接文件
    软链接:命令ln -s oldpath newpath创建从newpath到oldpath的软链接。
    软链接适用于任何文件,包括目录。

  • 相关阅读:
    毕业考试
    相机标定
    深度相机
    怎么选工业相机
    Python Socket 编程
    Canoe 过滤Trace中报文
    Canoe 使用Replay Block CAN回放报文
    安装Jupyter Notebook
    Altium Designer PCB 画板框
    EMQX 取消匿名登录和添加、删除用户
  • 原文地址:https://www.cnblogs.com/ginjzlbg/p/15390259.html
Copyright © 2011-2022 走看看