




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统原理实验报告专 业 网络工程 班 级 14-2 学 号姓 名 林浩强 指导教师 陈 珂 完成时间 2016.12.08 成 绩 实验四 LINUX文件系统编程一、实验目的l1加深对文件,目录,文件系统等概念的理解。2掌握Linux文件系统的目录结构。3掌握有关Linux文件系统操作的常用命令。4了解有关文件安全方面的知识。5掌握LINUX文件系统的基本原理,结构和实现的方法6掌握LINUX文件系统中文件的建立,打开,读写,执行,属性等系统调用的使用.二、实验内容1浏览文件系统2查看文件3文件操作4文件存取权限5仔细阅读提供的源代码6理解LINUX文件系统的基本原理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 . /.,你将工作目录移到什么地方。注意“/”前有无空格的区别。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 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):允许指定的用户可以打开文件并阅读其内容。如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修改文件或目录权限二、LINUX文件系统编程1.1、在VMware运行Linux(CentOS),并打开Terminal1.2、新建eaxm.c文件,并使用C语言进行编程1.3、编译文件“exam.c”1.4、执行“exma.c”并观察输出结果四、程序清单:注意加注释(包含关键字、方法、变量等),在每个模块前加注释#include#include#include#include#include#include#include#include#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;case 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;char* 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); 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 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、程序分析本程序主要是通过调用系统中“文件的建立、打开、读写、执行”等系统调用函数,实现对Linux文件的各种操作,例如创建、读写、修改文件权限等操作。主要使用到以下几个系统调用函数:(1)创建新文件 fd=open(file1,O_RDWR|O_TRUNC|O_CREAT,0750);调用函数open()打开文件,第一个参数为要打开的文件名,第二个参数为打开文件的方式,其中参数O_CREAT表示当打开的文件不存在时,创建该文件,此时要加上第三个参数,第三个参数表创建文件后文件所具有的权限。该函数的返回值为打开文件的标识符,出错时fd=-1; (2)写文件 num=read(0,buffer,MAX); 调用read()函数,该函数的第一个参数为要读取的文件描述符,0表示从输入流中读取文件,第二个参数表示将读取到的数据存放到buffer缓冲区中,第三个参数为最大读取的字符个数。函数的返回值为实际读取到的字符数。 write(fd,buffer,num);调用write()函数,该函数的第一个参数为要将数据写入的文件描述符,第二个参数要写入的缓冲区,第三个参数为写入的字符长度。(3)读文件 read(fd,buffer,MAX);调用该函数,将文件标识符为fd中的文件中的数据读取到buffer缓冲中。 write(1,buffer,num); 调用该函数,将buffer缓冲区中的数据写入到输出流中,输出到显示器上。 (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、解释num=read(0,buffer,MAX); wr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025瓷砖产品进出口贸易代理合同
- 2025年度特色订餐服务合同范本
- 2025版高标准预制砌块施工合同
- 2025年多媒体短信息服务合同五
- 2025产品陈列与售后服务合作协议
- 2025年度三七药材种植户贷款担保与购销合同
- 2025常用合同系列之动漫游戏行业劳动合同范本
- 诸城市2024-2025学年中考试题猜想数学试卷含解析
- 养老机构医养结合模式下的养老产品创新与研发报告
- 海洋风力发电市场前景:2025年海上风能资源评估与发展研究报告
- 2025年事业单位工勤技能-河南-河南农业技术员一级(高级技师)历年参考题库含答案解析(5卷套题【单选100题】)
- (新教材)2025年秋期人教版二年级上册数学核心素养教案(第2单元)(教学反思有内容+二次备课版)
- (高清版)DB34∕T 5154-2025 基于云制造的工业互联网架构要求
- 党校中青班入学考试试题及答案
- 三支一扶培训
- 2025年中国儿童游乐设施产业深度调研与投资机遇研究报告
- 新生儿42天体检要点解析
- 煤矿联网课题题目及答案
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人笔试参考题库附带答案详解析集合
- T/CASTEM 1007-2022技术经理人能力评价规范
- 初中七年级数学备课组科研合作计划
评论
0/150
提交评论