[工学]Unix-file.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]Unix-file

高级计算机网络编程 Advanced Computer Network Programming 东南大学软件学院 张三峰 sfzhang@seu.edu.cn 纲要 磁盘分块 引导块 0号块,不属于文件系统管理 超级块 1号块,描述文件系统信息,大小、空闲块数、空闲块索引表等 磁盘分块 i节点区 整区长度由超级块s_isize决定 一个文件占据一个i节点 描述文件的属性:属主、块表、访问时间等 数据块区 一个文件可能放在多个数据块中 每个数据块的大小可以设定,比如1024字节 inode 记录了文件存储的数据块 以直接块指针加三级间接指针的方式记录 文件系统三级索引结构 三级索引结构 i节点存放文件的数据块信息 没有存放所有数据块的指针 存放12个直接指针 一个一级间接指针 一个二级间接指针 一个三级间接指针 如果一个块1kB大小 可以存放256个指针 一个二级间接指针可以指向256个一级间接指针块,每个块有256个直接指针 总共可指向256x256个数据块(64MB) 文件读取过程 /etc/pwd 从目录根据文件名查索引节点号 从索引节点表找到索引节点 从索引节点找到文件属性、权限、磁盘块 从磁盘块表找到数据块 文件属性 sys/stat.h中定义文件系统属性结构体stat 文件的权限和类型存在于st_mode字段 权限包括九位 属主的rwx 属组的rwx 其它用户的rwx 文件属性 存储于inode 可以通过命令和函数读写 文件权限管理命令 文件属性 文件权限管理命令 文件属性 使用函数获取文件属性并存储到struct stat中 根据st_mode的各个位置位情况判断文件属性 文件系统属性 sys/statfs中定义statfs函数和结构体 对应超级块记录的信息 文件系统属性 标准文件编程库函数 stdio.h 打开关闭文件 R读、W写(单进程写)、A追加(多进程同时写) 是否创建,WR都可以创建不存在的文件 +使得wra可同时读/写 b二进制模式打开(对应于ASCII文件) 可以组合成br+串 返回文件流指针 标准文件编程库函数 二进制文件 和内存相对应 文本文件 和字符编码相对应, 删除文件和重命名文件 标准文件编程库函数 字符读写 ASCII文件字符到字符,串到串 Fgetc比getc慢,getchar默认FILE为stdin 返回读取的字符数 标准文件编程库函数 字符读写 以字符的ASCII码给参数 返回值也是成功写入/输出的字符的ASCII码 标准文件编程库函数 例子,读取passwd文件中的用户名 标准文件编程库函数 例子 标准文件编程库函数 行读 从文件读入一个以0结尾的字符串 读入的数据包括\n,不包括0 计入读入的长度 在缓存区末尾自动添加0 返回读入的串指针 标准文件编程库函数 行写 把以0结尾的字符串写到文件 输出内容不包括0,包括串中的\n 并且对于stdout还补充一个\n 对于文件流不另外补充\n 写错误返回EOF 标准文件编程库函数 例子 标准文件编程库函数 例子 标准文件编程库函数 块读写 从FILE到char* 读n个大小为size的块 每个块通常对应一个结构类型的数组元素 char*通常为数组起始地址 标准文件编程库函数 块读写例子 标准文件编程库函数 无格式读写 行fgets fputs,字符getc putc 内存字符或者字符串和ASCII文件之间的直接读写 块读写 内存和硬盘之间二进制“原样搬运” 两种无格式读写都没有类型转换 标准文件编程库函数 格式化读写 将内存中的有类型数据按照某种格式输出到ASCII文件 int n=10;fprintf ( stdout,“n=%d”,n) 或者从ASCII文件中按照格式读入到有类型的内存空间 int n;fscanf ( stdin,“%d”,n) 标准文件编程库函数 格式化读写 标准文件编程库函数 文件定位 SEEK_SET SEEK_CUR SEEK_END long len; fseek( file, 0, SEEK_END ); len = ftell ( file ); rewind ( file ); 标准文件编程库函数 例子 目录文件编程库函数 获取当前工作目录 成功拷贝到path或者buf中,返回指针 改变当前工作目录 目录文件编程库函数 例子 目录文件编程库函数 读取目录流 流指针DIR* 目录项结构struct dirent 目录项结构体至少包括i节点号和文件名等信息 目录文件编程库函数 创建和删除目录 基于文件描述符的编程库函数 文件描述符(file descriptor) 内核利用文件描述符来访问文件 很小的非负整数,进程文件表

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档