收藏 分享(赏)

操作系统实验5文件系统:Linux文件管理.doc

上传人:精品资料 文档编号:10629234 上传时间:2019-12-10 格式:DOC 页数:8 大小:223KB
下载 相关 举报
操作系统实验5文件系统:Linux文件管理.doc_第1页
第1页 / 共8页
操作系统实验5文件系统:Linux文件管理.doc_第2页
第2页 / 共8页
操作系统实验5文件系统:Linux文件管理.doc_第3页
第3页 / 共8页
操作系统实验5文件系统:Linux文件管理.doc_第4页
第4页 / 共8页
操作系统实验5文件系统:Linux文件管理.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、1实验 5 文件系统 :Linux 文件管理1实验目的(1)掌握 Linux 提供的文件系统调用的使用方法;(2)熟悉文件和目录操作的系统调用用户接口;(3)了解操作系统文件系统的工作原理和工作方式。2实验内容(1) 利用 Linux 有关系统调用函数编写一个文件工具 filetools,要求具有下列功能:*0. 退出1. 创建新文件2. 写文件3. 读文件4. 复制文件5. 修改文件权限6. 查看文件权限7. 创建子目录8. 删除子目录9. 改变当前目录到指定目录10. 链接操作*代码:#include#include#include#include#include#include#incl

2、ude#includevoid menu(void);void openfile(void);void writefile(void);void readfile(void);void copyfile(void);void chmd(void);void ckqx(void);void cjml(void);void scml(void);void ggml(void);void ylj(void);int main()int choose;int suliangjin=1;2menu();scanf(“%d“,while(choose!=0)switch(choose)case 1:ope

3、nfile();break;case 2:writefile();break;case 3:readfile();break;case 4:copyfile();break;case 5:chmd();break;case 6:ckqx();break;case 7:cjml();break;case 8:scml();break;case 9:ggml();break;case 10:ylj();break;menu();scanf(“%d“,return 0;void menu(void)printf(“文件系统 n“);printf(“1.创建新文件n“);printf(“2.写文件n“

4、);printf(“3.读文件n“);printf(“4.复制文件n“);printf(“5.修改文件权限n“);printf(“6.查看文件权限n“);printf(“7.创建子目录n“);printf(“8.删除子目录n“);printf(“9.改变目前目录到指定目录 n“);printf(“10.链接操作n“);printf(“0.退出n“);printf(“请输入您的选择.n“);void openfile(void)int fd;if(fd=open(“/tmp/hello.c“,O_CREAT|O_TRUNC|O_RDWR,0666)0)perror(“open“);3elsepr

5、intf(“open file:hileo.c %dn“,fd);if(close(fd)0)perror(“close“);elseprintf(“Close “);void writefile(void)int fd,size,len;char *buf=“Hello!Im writing to this file!“;len=strlen(buf);if(fd=open(“/tmp/hello.c“,O_CREAT|O_TRUNC|O_RDWR,0666)0)perror(“open“);elseprintf(“open file:hileo.c %dn“,fd);if(size=wri

6、te(fd,buf,len)0)perror(“write“);elseprintf(“Write:%sn“,buf);if(close(fd)0)perror(“close“);elseprintf(“Close hello.c n“);void readfile(void)int fd,size;char b10;if(fd=open(“/tmp/hello.c“,O_CREAT|O_TRUNC|O_RDWR,0666)0)perror(“open“);elseprintf(“open file:hileo.c %dn“,fd);lseek(fd,0,SEEK_SET);if(size=r

7、ead(fd,b,10)0)perror(“read“);elseprintf(“read from file:%sn“,b);if(close(fd)0)perror(“close“);elseprintf(“Close “);4void copyfile(void)if(fork()=0) execlp(“/bin/cp“,“cp“,“/tmp/hello.c“,“/tmp/he.c“,NULL);elsewait(0);printf(“将 hello.c 复制 he.c“);void chmd(void)int a;printf(“1.文件主可读可写可执行 n“);printf(“2.文

8、件主可读n“);printf(“3.文件主可写n“);printf(“4.文件主可执行n“);printf(“请输入您的选项n“);scanf(“%d“,switch(a)case 1:chmod(“/tmp/hello.c“,S_IRWXU);printf(“ok!n“);break;case 2:chmod(“/tmp/hello.c“,S_IRUSR);printf(“ok!n“);break;case 3:chmod(“/tmp/hello.c“,S_IWUSR);printf(“ok!n“);break;case 4:chmod(“/tmp/hello.c“,S_IXUSR);pri

9、ntf(“ok!n“);break;default:printf(“您选择有误n“);void ckqx(void)char *path=“/bin/ls“;char *argv4=“ls“,“-l“,NULL;if(fork()=0)execv(path,argv);elsewait(0);void cjml(void)if(mkdir(“/tmp/a“,S_IRWXU)0)perror(“Mkdir“);else5printf(“创建成功n“);void scml(void)if(rmdir(“/tmp/a“)0)perror(“Rmdir“);elseprintf(“删除成功n“);vo

10、id ggml(void)if(chdir(“/tmp/bc“)0)perror(“chdir“);elseprintf(“更改目录成功 n“);void ylj(void)if(link(“hello.c“,“h.c“)0)perror(“Link“);elseprintf(“建立硬连接n“);打开文件:写文件:6读文件:复制文件:修改权限:查看权限:7创建目录:删除目录:更改目录:硬连接:问题解决方案:1. 在复制文件时用 execlp 函数,虽然有复制成功但是他就跳出整个程序,这就是一个缺陷。后来我在 execlp 前面加 if(fork)()=0)就可以咯82. 硬连接不成功,老是抛出错误信息,后来发现原来是因为我的代码出错,还有我之前已经更改了目录所以就会经常报错3. 到现在还不知道为什么我读出来的是乱码情解决实验心得体会:通过这次实验掌握 Linux 提供的文件系统调用的使用方法;熟悉文件和目录操作的调用用户接口,了解操作系统文件系统的工作原理和工作方式。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报