




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统原理实验报告专 业 网络工程 班 级 14-2 学 号姓 名 林浩强 指导教师 陈 珂 完成时间 2016.12.08 成 绩 实验四 LINUX文件系统编程一、实验目的l1加深对文件,目录,文件系统等概念的理解。2掌握Linux文件系统的目录结构。3掌握有关Linux文件系统操作的常用命令。4了解有关文件安全方面的知识。5掌握LINUX文件系统的基本原理,结构和实现的方法6掌握LINUX文件系统中文件的建立,打开,读写,执行,属性等系统调用的使用.二、实验内容1浏览文件系统2查看文件3文件操作4文件存取权限5仔细阅读提供的源代码6理解LINUX文件系统的基本
2、原理7调试提供的源代码三、实验步骤一、Linux常用文件命令1、浏览文件系统1.1运行pwd命令,确定你当前的工作目录。1.2利用以下命令显示当前工作目录的内容:ls l1.3运行以下命令:ls ai1.4使用mkdir命令建立一个子目录subdir。1.5使用带-d选项的ls命令,你只能看到有关子目录的信息。1.6使用cd命令,将工作目录改到根目录(/)上。命令格式:cd /1.7使用ls命令列出根目录的内容,再分别列出各子目录的内容。1.8使用ls -l命令列出/dev的内容1.9使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什么。1.10使用命令cd . /.,你将工作目
3、录移到什么地方。注意“/”前有无空格的区别。2、查看文件2.1利用cd命令,将工作目录改到你的主目录上。 2.2将工作目录改到你的子目录subdir,然后运行命令:date > file1将当前日期和时间存放到新建文件file1中。2.3使用cat命令查看file1文件的内容。2.4利用man命令显示date命令的用法2.5将date命令的用法附加到文件file1的后面2.6利用cat命令显示文件file1的内容。2.7利用ls -l file1命令列出文件file1的较详细的信息,注意其中第二字段(链接计数)的值。2.8利用ln file1./fa命令进行文件链接。然后运行ls -l
4、file1,查看显示的第二段的值发生了什么变化。2.9现在想利用cat fa命令显示文件fa的内容,应该如何改动工作目录?2.10假设你的主目录是/usr/student,利用ln -s /usr/student/file1 slink进行符号连接。然后,利用ls -l file1 slink显示有关file1和slink的信息。2.11运行ls -l/bin命令显示目录的内容。2.12利用ls -l/bin|more命令行分屏显示/bin目录的内容。3、文件操作3.1利用find命令查找文件和目录3.2查找文件中指定的内容4、文件与目录存取权限4.1 文件读权限(r):允许指定的用户可以打开
5、文件并阅读其内容。如cat,more,file和cp命令等。4.2文件写权限(w):允许指定的用户可以打开文件并修改其内容。如vi,mail,cp等。4.3文件执行权限(x):允许指定的用户运行(即执行)一个二进制文件或者把一个shell脚本文件当作命令来运行。当你通过输入命令名来调用命令时,你必须具有该命令文件的执行权限。4.4目录读权限(r):允许你列出相应目录中所存放的文件的名字(即目录的内容表)。4.5目录写权限(w):允许你从目录中删除已有文件或者把新文件添加到目录中。4.6目录查询权限(x):允许你在目录中进行查找和使用cd命令把工作目录放到它这里。4.7修改文件或目录权限二、LI
6、NUX文件系统编程1.1、在VMware运行Linux(CentOS),并打开Terminal1.2、新建eaxm.c文件,并使用C语言进行编程1.3、编译文件“exam.c”1.4、执行“exma.c”并观察输出结果四、程序清单:注意加注释(包含关键字、方法、变量等),在每个模块前加注释#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<fcntl.h>#include<sys/stat.h>#include<syslog.h>#include
7、<string.h>#include<stdlib.h>#define MAX 128int chmd();int chmd ()int c;mode_t mode=S_IWUSR;printf(" 0. 0700n 1. 0400n 2. 0200 n 3. 0100n "); printf("Please input your choice(0-3):");scanf("%d",&c);switch(c)case 0: chmod("file1",S_IRWXU);break;c
8、ase 1: chmod("file1",S_IRUSR);break;case 2: chmod("file1",S_IWUSR);break;case 3: chmod("file1",S_IXUSR);break;default:printf("You have a wrong choice!n");return(0);main()int fd;int num; int choice;char bufferMAX;struct stat buf;char* path="/bin/ls"ch
9、ar* argv4="ls","-l","file1",NULL; while(1) printf("*n");printf("0. 退出n");printf("1. 创建新文件n");printf("2. 写文件n");printf("3. 读文件n");printf("4. 修改文件权限n");printf("5. 查看当前文件的权限修改文件权限n"); printf("*n&quo
10、t;); printf("Please input your choice(0-6):"); scanf("%d",&choice); switch(choice) case 0:close(fd); exit(0); case 1: fd=open("file1",O_RDWR|O_TRUNC|O_CREAT,0750); if(fd=-1) printf("File Create Failed!n"); else printf("fd = %dn",fd); break; case
11、2: num=read(0,buffer,MAX); write(fd,buffer,num); break; case 3: read(fd,buffer,MAX); write(1,buffer,num); break; case 4: chmd (); printf("Change mode success!n"); break; case 5: execv(path,argv); break; default: printf("You have a wrong choice!n"); 五、测试结果(运行结果、结果分析)六、回答问题:1、程序分析本
12、程序主要是通过调用系统中“文件的建立、打开、读写、执行”等系统调用函数,实现对Linux文件的各种操作,例如创建、读写、修改文件权限等操作。主要使用到以下几个系统调用函数:(1)创建新文件 fd=open("file1",O_RDWR|O_TRUNC|O_CREAT,0750);调用函数open()打开文件,第一个参数为要打开的文件名,第二个参数为打开文件的方式,其中参数O_CREAT表示当打开的文件不存在时,创建该文件,此时要加上第三个参数,第三个参数表创建文件后文件所具有的权限。该函数的返回值为打开文件的标识符,出错时fd=-1; (2)写文件 num=read(0,b
13、uffer,MAX); 调用read()函数,该函数的第一个参数为要读取的文件描述符,0表示从输入流中读取文件,第二个参数表示将读取到的数据存放到buffer缓冲区中,第三个参数为最大读取的字符个数。函数的返回值为实际读取到的字符数。 write(fd,buffer,num);调用write()函数,该函数的第一个参数为要将数据写入的文件描述符,第二个参数要写入的缓冲区,第三个参数为写入的字符长度。(3)读文件 read(fd,buffer,MAX);调用该函数,将文件标识符为fd中的文件中的数据读取到buffer缓冲中。 write(1,buffer,num); 调用该函数,将buffer缓
14、冲区中的数据写入到输出流中,输出到显示器上。 (4)修改文件权限 chmod("file1",S_IRWXU); 调用该函数更改文件的权限,其中第一个参数为要更改权限的文件名,第二个参数为要修改到的权限,其中,S_IRWXU表示具有执行、可读、可写权限,S_IRUSR表示具有可读权限,S_IWUSR表示具有可写权限,S_IXUSR表示具有可执行权限。(5)查看当前文件的权限修改文件权限 char* path="/bin/ls" char* argv4="ls","-l","file1",NULL; execv(path,argv); 调用系统调用execv()函数,表示调用/bin/ls ,实际相当于在终端上执行” ls l file1”,查看文件file1的详细信息。2、解释
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无人机驾驶员执照考试相关案例试题及答案
- 英语教学课件Module 8 Unit 1 While the car were changing to red
- 深入学习二级消防工程师试题及答案
- 火灾现场分析与处理策略试题及答案
- 护士职业培训的创新试题及答案
- 消防工程师职业能力试题及答案
- 对于高级会计的理解试题及答案
- 锡林浩特市青年人员招募笔试真题2024
- 陕西延安通和电业有限责任公司招聘笔试真题2024
- 仁怀市公益性岗位人员招聘笔试真题2024
- 教学课件《茶叶加工机械与设备》
- 巩汉林小品《最后一堂课》台词剧本手稿
- 2022年大连市西岗区社区工作者招聘考试笔试试题及答案解析
- 立磨操作员岗位考核标准
- 边坡勘察报告
- 地产项目质量问题整改通知单
- DB31∕696-2020 蒸压加气混凝土砌块(板)单位产品综合能源消耗限额
- 认识分式 课件
- 发还清单(公安机关刑事法律文书式样(2012版))
- EHS监测测量控制程序
- 应急预案演练记录表范例
评论
0/150
提交评论