第10章 Linux文件系统.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文档。上传文档
查看更多
第10章 Linux文件系统

10.6 块设备驱动 10.6.2 设备驱动程序的接口 驱动程序的接口: 与文件系统的接口 与硬件的接口 用于块设备文件的缺省文件操作方法 驱动程序及其接口 * 目录 10.1 Linux文件系统的特点与文件类别 10.2 Linux的虚拟文件系统 10.3 文件系统的注册和挂装 10.4 进程与文件系统的联系 10.5 ext2文件系统 10.6 块设备驱动 10.7 字符设备驱动 10.7 字符设备驱动 字符设备是指在I/O传输过程中以字符为单位进行传输的设备,如键盘、打印机等。 Linux系统中,字符设备以字符特殊文件的方式在文件目录中占据一个席位并拥有相应的索引节点。 字符设备是Linux设备中最简单的一种。应用程序可以和存取文件相同的系统调用来打开,读写及关闭它。 用于字符设备文件操作只有一个,即打开文件操作chrdev_open。 一旦字符设备文件被打开,通常用于读写访问。 The End 10.2 Linux的虚拟文件系统 10.2.3 VFS的系统调用 5.lseek系统调用 返回值:文件指针的新位置 所用头文件: #include stdio.h #include fcntl.h 注意,实际应用中,lseek()有以下3种基本的应用情况。 将文件定位到由offset给定的位置0: lseek(fs,offset,0) 将文件指针定位到文件尾: lseek(fs, OL, 0) 获取文件指针的当前位置: lseek(fs, OL, 1) 例7 read,write和lseek函数使用实例。 #include unistd.h #include fcntl.h #define MAXSIZE int main(void) { int fd,size,len; char *buf=Hello!Im writing to this file!; char buf_r[10]; len=strlen(buf); if((fd=open(/tmp/hello.c,O_CREAT|O_TRUNC|O_RDWR,0666))0) { perror(open:); exit(1);` } else printf(open file:hello.c %d\n,fd); if((size=write(fd,buf,len))0) { perror(write:); exit(1); } else printf(Write:%s\n,buf); lseek(fd,0,SEEK_SET); if((size=read(fd,buf_r,15))0) { perror(read:); exit(1); } else printf(read from file:%s\n,buf_r); if(close(fd)0) { perror(close:); exit(1); } else printf(Close hello.c\n); exit(0); } 例7 假设当前目录下有文件file,其内容是26个英文字母。编程序移动指针到第10个字符,使其从第11个字符开始输出,直到最后一个字符。 #include stdio.h #include fcntl.h main(int argc, char *argv[ ]) { int fd; char c; fd=open(argv[1],O_RDONLY); lseek(fd,10,SEEK_SET); while(read(fd,c,1)==1) putchar(c); } The End 10.2 Linux的虚拟文件系统 10.2.3 VFS的系统调用 6.chown系统调用 调用的作用: 修改文件所有者的标识或组标识,只有超级用户才能使用。 调用格式: int chown(char *pathname, uid_t owner, gid_t group); pathname为被操作文件的路径名 owner和group 分别给出文件所有者标识和组标识。若owner或group的值为-1,则文件对应的标识符不变,若在一个只读文件系统对文件进行chown操作则调用将失败。 10.2 Linux的虚拟文件系统 10.2.3 VFS的系统调用 6.chown系统调用 调用功能: 执行chown后,原来的文件主可能因文件主的改变而失去对文件的访问权。实际使用中,该调用更多地用来改变文件的组标识,实现文件的组间转换,以便多用户对同一文件实施控制。 所用头文件: #include sys/types.h #include unistd.h 10.2 Linux的虚拟文件系统 10.2.3 VFS的系统调用 7

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档