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

合集下载

《Linux系统管理》文件权限管理实验报告

《Linux系统管理》文件权限管理实验报告

《Linux系统管理》文件权限管理实验报告一、实验目的:1.了解和说下创建并使用脚本的步骤2.掌握shell的变量及特殊字符3.掌握shell的输入输出命令4.掌握常用shell程序逻辑结构语句二、实验内容:1.创建一个简单的列出目录和日期等shell脚本并运行之。

2.shell的输入输出重定向完成以下题目:(1)创建一个mytest文件,然后查看mytest和youtest文件,并观察执行结果。

(2)查看mytest和youtest文件过程中的正确信息输出定向到mytestout文件中,错误信息显示在屏幕,并查看定向文件。

(3)查看mytest和youtest文件过程中正确信息输出定向附加到mytestout,将错误信息输出定向到error,并查看定向文件。

(4)查看mytest和youtest文件过程中正确信息和错误信息混合输出到message文件中,并查看定向文件。

(5)查看mytest和youtest文件过程中正确信息和错误信息混合输出到/dev/null设备文件中。

(6)使用输入重定向把mytestout文件导入给wc -l命令,统计一下文件中的内容行数。

3.用shell语言编制shell程序,该程序在用户输入(read命令)年、月之后,自动打印输出(echo命令)该年该月的日历。

4.shell变量操作(1)编写一个shell脚本,并使它执行时显示/bin目录下所有以b开头的文件和目录并按ASCII码由大到小排序保存到temp文件中。

(2)编写一个shell脚本文件并执行,其中包含date和who 命令。

(3)编写一个简单的shell脚本文件,把你的名字赋给myname 的shell变量并输出改变的内容。

(4)查看系统的环境变量,并保存到文件myv中。

(5)编写一个shell脚本文件,从键盘读取数据保存到myvn 变量中并输出该变量。

(6)编写以下脚本程序带多个命令行参数运行并说明原因。

实验Linux文件和目录操作详解

实验Linux文件和目录操作详解

实验Linux文件和目录操作详解在Linux系统下,文件和目录是操作系统中的基本组成部分。

对于初学者来说,熟悉Linux文件和目录的操作是非常重要的。

本篇文档将详细介绍Linux系统中的文件和目录操作。

1. 创建文件和目录在Linux系统中,可以使用touch命令创建一个空文件,例如:$ touch myfile.txt使用mkdir命令可以创建一个新的目录,例如:$ mkdir mydir如果需要一次性创建多级目录,可以使用mkdir命令的-p 选项,例如:$ mkdir -p mydir1/mydir2/mydir32. 查看文件和目录使用ls命令可以查看当前目录中的文件和目录列表,例如:$ lsmyfile.txt mydir如果需要显示隐藏文件,可以使用ls命令的-a选项,例如:$ ls -a. .. .hiddenfile myfile.txt mydir使用cd命令可以切换当前目录,例如:$ cd mydir使用pwd命令可以查看当前所在的目录路径,例如:$ pwd/home/user/mydir使用cat命令可以查看文件的内容,例如:$ cat myfile.txtHello, this is my file.3. 复制、移动和重命名文件和目录使用cp命令可以复制文件或目录,例如:$ cp myfile.txt myfile_copy.txt$ cp -r mydir mydir_copy使用mv命令可以移动文件或目录,例如:$ mv myfile.txt /tmp/myfile.txt$ mv mydir /tmp/mydir使用mv命令还可以重命名文件或目录,例如:$ mv myfile.txt newname.txt4. 删除文件和目录使用rm命令可以删除文件,例如:$ rm myfile.txt使用rm命令的-r选项可以递归删除目录及其内容,例如:$ rm -r mydir5. 修改文件和目录的权限使用chmod命令可以修改文件或目录的权限,例如:$ chmod 755 myfile.txt$ chmod 755 mydir其中,755是权限的数字表示形式,表示文件所有者具有读、写、执行权限,其他用户具有读、执行权限。

实验五 Linux文件系统和权限管理

实验五 Linux文件系统和权限管理

实验5 Linux文件系统和权限管理1 实验目的1、掌握Linux文件系统的控制机制及权限的表示方法。

2、掌握权限管理常用的命令。

2 实验环境VMware中已经安装好CentOS5.4版本。

3 实验原理1、Linux文件系统权限及管理机制可参见教材P83~P84。

2、Linux常用文件权限管理命令主要有:chmod、chown两个,这些命令的使用可参见教材P86~P104或者帮助手册。

4 实验任务1、使用chm od、chown命令完成文件权限的设置、修改等操作。

5 实验步骤1、使用命令查看/etc/hosts文件的权限,其权限是。

2、使用命令可以复制文件/etc/hosts到目录/tmp 下,然后使用命令或设置其读写权限为:文件所有者可以读、写和执行,同组用户可以读和执行,其他用户只可以执行。

(要求使用两种方法实现)3、修改题目2中复制的文件的所有者:所有者为用户test(需要事先创建),组所有者为m ail,使用的命令是。

4、查看系统当前的um ask值,并设置umask值为033,创建文件word,其权限是。

(自己验证。

想一想,为什么?)5、将系统的时间设置为22:10的命令是,将日期和时间按照格式:mm/dd/yy hh:mm:ss显示输出的命令是。

6、保存2009年全年的日历在文件cal2009中的命令是。

7、将2009年1月的日历导出保存到文件cal.1中的命令是,将2009年2月的日历追加到2009年1月的日历后面的命令是。

8、假定需要显示信息:host: 主机名。

使用hostnam e命令替换显示主机的名称的操作是echo “host: “或echo “host: “。

9、假定需要在屏幕上显示** 00000 **,则可以使用命令echo 完成。

操作系统原理及应用(Linux)第5章 文件管理

操作系统原理及应用(Linux)第5章 文件管理
直 接 块
Addr[11]
Addr[12] 一次间接

Addr[13] 二次间接
Addr[14] 三次间接

物理块
… …
… …
混合索引表
假设1个磁盘块4KB,一个索引表项占4B, 直接索引表引出磁盘块 12个
12*4KB=48KB 一级索引表引出文件磁盘块的数量
4KB/4B=1K个 支持的文件长度 1K*4KB=4MB 二级索引表引出文件磁盘块的数量1K*1K 支持的文件长度 1K*1K*4KB=4GB 三级索引表引出文件磁盘块的数量1K*1K*1K 支持的文件长度 >1K*1K*1K*4KB=4TB
…… ……
666 7771
文 索引表指针
件 说 明
索引表
逻辑 块号
0
1 2 3
物理 块号
26
文 件
索引表指针


索引表
逻辑 块号
0
1 2 3
4
物理 块号
NULL
27
优点:既能方便迅速地实现随机存取,又能满足文件动态 增长的需要。 缺点:增加了索引表带来的存储空间开销。
2.多级索引(类似多级页表)
1.数据项 数据项是描述一个对象的某种属性的字符集,是数据组织中可以命名的最 小逻辑数据单位。 2.记录 记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。 3.文件 文件是由创建者定义的、具有文件名的一组相关信息的集合。
4
5.1.2 文件系统
文件系统是操作系统中对文件进行管理和操作的软件机构与数据的 集合,即文件管理系统。 1.文件系统的需解决的问题 (1)有效地分配存储器的存储空间。 (2)提供一种组织数据的方法。数据在辅存设备上的分布构成了文件的 物理结构,实现了“按名存取”的功能。 (3)提供合适的存取方法。 (4)提供一组服务,以执行所需要的操作。这些操作包括创建文件、撤 消文件、组织文件、读文件、写文件、传输文件和控制文件的访问权限 等。

《操作系统》课程实验内容和实验要求

《操作系统》课程实验内容和实验要求

实验内容和实验要求实验1:安装Linux系统(4学时)目的:1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。

2.学会在安装多操作系统前,利用硬盘分区工具(如PQMagic)为Linux准备分区。

3.学会Linux操作系统的安装步骤和简单配置方法。

4.学会Linux系统的启动、关闭步骤,初步熟悉Linux系统的用户界面。

内容:1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。

2.安装Linux系统(如红旗Linux桌面版)。

3.配置Linux系统运行环境。

4.正确地启动、关闭系统。

5.对图形界面进行一般操作。

要求:1.制订安装计划。

2.如果在机器上已安装了Windows系统,而且没有给Linux预备硬盘分区,则安装硬盘分区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。

3.在光驱中放入Linux系统安装盘,启动系统。

按照屏幕提示,选择/输入相关参数,启动安装过程。

4.安装成功后,退出系统,取出安装盘。

重新开机,登录Linux系统。

5.对Linux系统进行配置,如显示设备、打印机等。

6.利用鼠标对图形界面进行操作。

说明:1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被破坏。

2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。

实验2:Linux 应用及shell编程(4学时)目的:1.掌握Linux一般命令格式和常用命令。

2.学会使用vi编辑器建立、编辑文本文件。

3.了解shell的作用和主要分类。

4.学会bash脚本的建立和执行方式。

5.理解bash的基本语法。

6.学会编写简单的shell脚本。

内容:1.正确地登录和退出系统。

2.熟悉使用date,cal等常用命令。

3.进入和退出vi。

利用文本插入方式建立一个文件。

4.学会用gcc编译器编译C程序。

5.建立shell脚本并执行它。

6.学会使用shell变量和位置参数、环境变量。

实验 Linux文件系统管理实验

实验 Linux文件系统管理实验

auto:自动挂载。 nouser:使一般用户无法挂载。 async:以非同步方式执行文件系统的输入 输出操作。 可见,该列表中光驱和软驱是不自动挂载 的,参数设置为noauto。 注意:如果非要设成自动挂载,则要确保 每次开机时光驱和软驱里都要有盘。
四、实验内容和步骤
1.挂载文件系统 (1)手工挂载文件系统
-o<选项>,指定挂载文件系统时的选项, 有些也可用在/etc/fstab中,常用的有如下几 种。 codepage=XXX:代码页。cp936 iocharset=XXX:字符集。gb2312 ro:以只读方式挂载。 rw:以读写方式挂载。 nouser:使一般用户无法挂载。 user:可以让一般用户挂载设备。
以下是一个/etc/fstab文件的实例: /dev/had3 / ext3 defaults 11 LABEL=/boot /boot ext3 defaults 1 2 /dev/had1 /dosc vfat defaults 0 0 /dev/had2 /dosd vfat defaults 0 0 /dev/had4 swap swap defaults 0 0 /dev/fd0 /mnt/floppy msdos noauto,user 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,user 0 0 None /proc proc defaults 00
此时,可以进入/mnt/cdorm等目录这些文件系 统。 注意:要保证命令不出错,确保光驱里有盘。 如果挂载的是在windows下的文件系统,并且 有中文文件名,用以上命令挂载后,显示一堆乱码。 这时,需要用-o 参数中的codepage iocharset选项。 其中,codepage指定文件系统的代码页,简体中文代 码是936;iocharset指定字符集,简体中文一般用 cp936或gb2312。 当挂载的文件系统linux不支持时,mount一定 出错(如Windows 2000的NTFS)。这时,可以重新 编译linux内核,以获得对该文件系统的支持。

【电大本科操作系统实验报告】文件管理

实验步骤:
用ls,ls-a命令显示目录和文件名内容Tree命令显示“树”
建立四个目录,用tree表示
Ps到abc目录下
用cp命令复制ps.txt到ps1.txt 连同目录一起复制到ABC目录
用mv命令改名
用mv命令移动文件
用rm命令删除文件删除目录
用cd命令到etc文件夹下创建几个文档
用ls命令查看
编译,创建文档
编译,查看文档
创建text.txt文档
三、实验成果提交
如上述各图所示
四、实验中遇到的难点及解决办法
使用系统调用对文件进行操作,编程实现对文件的创建、打开、关闭、读和写
五、实验体会
由于试验时间的紧迫,通过这次试验使我只是初步的学会了, Linux系统的文件管理,通过本学期的学习操作系统的过程,感觉学习的内容不足以能让我较好地使用Linux系统,感觉对他的了解还是那么少,会在以后的时间内多学习一些关于Linux系统方面的内容,努力做好和学习好Linux系统。

实验Linux文件和目录操作

实验Linux文件和目录操作实验Linux文件和目录操作(1)一、实验内容练习Linux文件和目录操作命令。

二、实验目的掌握文件与目录管理命令掌握文件内容查阅命令三、实验题目1. 文件与目录管理(1) 查看CentOS根目录下有哪些内容?(2)进入/tmp目录,以自己的学号建一个目录,并进入该目录。

(3)显示目前所在的目录。

(4)在当前目录下,建立权限为741的目录test1,查看是否创建成功。

(5)在目录test1下建立目录test2/teat3/test4。

(6)进入test2,删除目录test3/test4。

(7)将root用户家目录下的.bashrc复制到/tmp下,并更名为bashrc (8)重复步骤6,要求在覆盖前询问是否覆盖。

(9)复制目录/etc/下的内容到/tmp下。

(10)在当前目录下建立文件aaa。

(11)查看该文件的权限、大小及时间(12)强制删除该文件。

(13) 将/tmp下的bashrc移到/tmp/test1/test2中。

(14) 将/test1目录及其下面包含的所有文件删除。

2. 文件内容查阅、权限与文件查找(1) 使用cat命令加行号显示文件/etc/issue的内容。

(2) 反向显示/etc/issue中的内容。

(3) 用nl列出/etc/issue中的内容。

(4) 使用more命令查看文件/etc/man.config(5) 使用less命令前后翻看文件/etc/man.config中的内容(6) 使用head命令查看文件/etc/man.config前20行(7) 使用less 命令查看文件/etc/man.config后5行(8) 查看文件/etc/man.config前20行中后5行的内容(9) 将/usr/bin/passwd 中的内容使用ASCII方式输出(10) 进入/tmp目录,将/root/.bashrc复制成bashrc,复制完全的属性,检查其日期(11) 修改文件bashrc的时间为当前时间四、实验指导1. 文件与目录管理(1)查看CentOS根目录下有哪些内容?ls /(2)进入/tmp目录,以自己的学号建一个目录,并进入该目录。

linux实验5_文件管理

实验二Linux指令入门-文件管理目录实验二Linux指令入门-文件管理 (1)1实验环境 (2)2实验内容 (2)2.1磁盘管理命令 (2)2.1.1 cat (2)2.1.2 cmp (3)2.1.3 diff (4)2.1.4 file (6)2.1.5 find (7)3实验小节 (8)1实验环境本实验根据移动云平台的《Linux指令入门-系统管理》进行,为了直观展示linux命令对文件的操作,部分实验使用个人电脑双系统的linux环境,这样可以直接打开文件观察。

由于没有使用docker或虚拟机来备份恢复系统,所以分盘等操作会影响linux系统的使用,因此部分实验直接使用移动云的ECS实例。

2实验内容2.1磁盘管理命令2.1.1 catcat命令描述:该命令用于连接文件并打印到标准输出设备上。

cat命令语法:cat [参数] [文件名]参数说明:cat命令使用示例:a.执行如下命令,将一个自增序列写入test1.txt文件中。

b.执行如下命令,查看文件test1.txt内容。

c.执行如下命令,将test1.txt的文件内容加上行号后输入到test2.txt文件。

d.执行如下命令,查看文件test2.txt内容e.执行如下命令,将test1.txt文件内容清空。

f.执行如下命令,查看文件test1.txt内容。

2.1.2 cmpcmp命令描述:该命令用于比较两个文件是否有差异。

当相互比较的两个文件完全一样时,该指令不会显示任何信息。

否则会标示出第一个不同之处的字符和列数编号。

当不指定任何文件名称,或文件名为"-",则cmp指令会从标准输入设备读取数据。

cmp命令语法:cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]参数说明:cmp命令使用示例:a.执行如下命令,将一个自增序列1-5写入test1.txt文件中。

b.执行如下命令,比较test1.txt文件和test2.txt文件是否相同。

《实用操作系统》实验报告五linux设备管理

《实用操作系统》实验报告实验报告: 5 实验项目名称:设备管理班级:学号:姓名:地点:时间:2013 年11 月13 日一、实验内容1、添加硬盘,创建二个主分区、一个扩展分区,二个逻辑分区注意:ide、scsi 提示:分区、格式化、挂载(fdisk,mkfs,mount)2、查看常见的设备文件有哪些?(ls /dev )常见的设备文件:/dev/hd* IDE接口的硬盘(IDE接口的设备) /dev/sd* SCSI/USB设备/dev/cua* 串口设备/dev/lp* 并口设备/dev/tty* 终端设备/dev/consol 控制台设备/dev/eth* 以太网设备/dev/cdrom IDE光驱/dev/fd* 软驱/dev/audio 音频设备/dev/scd SCSI的光驱/dev/ppp PPP设备/dev/isdn* ISDN设备3、挂载光盘,查看光盘内容创建挂载点要求:以本人姓名缩写为目录mkdir /目录/设备挂载mount 空格源设备空格挂载点4、显示管理System-config-display5、声卡管理System-config-soundcard6、打印机管理System-config-printer7、网卡管理System-config-network二、实验步骤及结果1.添加硬盘,创建分区;在启动虚拟机前,在工具栏中点击“虚拟机”,找到“设置”选项,在左面的硬件中找到硬盘,进行硬盘设备添加,这里有IDE和SCSI两种硬盘类型可供选择添加。

完成硬盘添加后即可启动虚拟机进入linux系统。

在这我添加了容量相同的硬盘设备类型各一;打开终端,在命令框输入“fdisk -l”可以查看添加硬盘后,当前磁盘信息;在命令框中输入“fdisk /dev/had”开始对磁盘进行分区命令操作。

在这我以刚添加的IDE类型硬盘为例进行分区实验,其标识符是had。

其中比实验要求多划分了主分区,一共有两个主分区,一个扩展区,将扩展区又分为两个逻辑分区;根据提示,按字母n创建一个分区,之后按p建立一个主分区;给新建的主分区定义一个编号为1,主分区柱面始值默认为1m回车后给定一个分区柱面终值为500m;接着新建第二个主分区依次按n,p,定义第二个主分区编号为2,起始值为501m,终止值为1000m;接下来按字母n,e新建扩展分区,定义编号为3,留下剩余所有磁盘空间;起始值为1001m,终止值为10402m;之后开始在扩展分区中划分创建逻辑分区,按字母m,n后,根据提示按字母l,这里不需要再给分区定义编号,在linux中,逻辑分区的编号直接从5开始计,默认自前向后;给第一个逻辑分区空间柱面初始值,默认为1001m,终止值定义为5000m;创建第二个逻辑分区,将扩展分区中剩下的空间直接留给最后一个逻辑分区,初始值为5001,终止值为10402m;分区完成后,按w保存退出,输入命令“fdisk –l”可以查看分区后磁盘信息;这里以格式化主分区hda1为例,在命令框中输入“mkfs /dev/hda1”结果如下;创建挂载点,新建目录输入命令“mkdir /mnt/gxa”;将磁盘第一个主分区挂载到/mnt/gxa目录下,输入命令“mount /dev/hda1 /mnt/gxa”,输入命令“ls /mnt/gxa”查看,在目录下创建文件输入命令“touch /mnt/gxa/gxa.txt”,同样查看如下;使用命令输入“umount /mnt/gxa”即可完成卸载;2.输入命令“ls /dev”查看设备文件,结果如下;3.挂载光盘,查看光盘内容;挂载光盘之前,如同磁盘挂在一样,先在设置中找到硬件中的“CD/DVD(IDE)”,选中右边使用镜像文件选项,找到镜像光盘文件,上侧勾选“已连接”,点击确定;在命令框中创建目录输入“mkdir /mnt/gxa”命令,将光盘挂载到该目录下输入命令“mount /dev/cdrom /mnt/gxa”,结果显示在桌面;类似磁盘卸载,输入命令“umount /mnt/gxa”,将光盘从目录下卸载,结果显示在桌面;4.显示管理,输入命令“System-config-display”得到结果如下,即可手动进行设置管理;5.声卡管理,输入命令“System-config-soundcard”得到结果如下即可设置;6.打印机管理,输入命令“System-config-printer”即可对打印机进行管理;7.网卡管理,输入命令“System-config-network”得到结果如下,即可手动进行操作管理;三、实验分析与讨论1.在实验刚开始对硬盘的类型理解还不透彻,其中关于IDE与SCSI设备在系统中设备标识符还没有完全弄懂,所以导致在机房实验时,对挂上去的三个硬盘标识的had,sda,sdb以及sda1和sda2之间关系没有摸透,也耽误分区的效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验5 文件系统:Linux文件管理1.实验目的(1)掌握Linux提供的文件系统调用的使用方法;(2)熟悉文件和目录操作的系统调用用户接口;(3)了解操作系统文件系统的工作原理和工作方式。

2.实验内容(1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:***********0. 退出1. 创建新文件2. 写文件3. 读文件4. 复制文件5. 修改文件权限6. 查看文件权限7. 创建子目录8. 删除子目录9. 改变当前目录到指定目录10. 链接操作***********代码:#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<fcntl.h>#include<sys/stat.h>#include<syslog.h>#include<string.h>#include<stdlib.h>void 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;menu();scanf("%d",&choose);while(choose!=0){switch(choose){case 1:openfile();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",&choose);}return 0;}void menu(void){printf("文件系统\n");printf("1.创建新文件\n");printf("2.写文件\n");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");elseprintf("open file:hileo.c %d\n",fd);if(close(fd)<0)perror("close");elseprintf("Close hello.c\n");}void writefile(void){int fd,size,len;char *buf="Hello!I'm 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 %d\n",fd);if((size=write(fd,buf,len))<0)perror("write");elseprintf("Write:%s\n",buf);if(close(fd)<0)perror("close");elseprintf("Close hello.c \n");}void readfile(void){int fd,size;char b[10];if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");elseprintf("open file:hileo.c %d\n",fd);lseek(fd,0,SEEK_SET);if((size=read(fd,b,10))<0)perror("read");elseprintf("read from file:%s\n",b);if(close(fd)<0)perror("close");elseprintf("Close hello.c\n");}void 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.文件主可读\n");printf("3.文件主可写\n");printf("4.文件主可执行\n");printf("请输入您的选项\n");scanf("%d",&a);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);printf("ok!\n");break; default:printf("您选择有误\n");}}void ckqx(void){char *path="/bin/ls";char *argv[4]={"ls","-l",NULL};if(fork()==0)execv(path,argv);elsewait(0);}void cjml(void){if(mkdir("/tmp/a",S_IRWXU)<0)perror("Mkdir");elseprintf("创建成功\n");}void scml(void){if(rmdir("/tmp/a")<0)perror("Rmdir");elseprintf("删除成功\n");}void 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");}打开文件:写文件:读文件:复制文件:修改权限:查看权限:创建目录:删除目录:更改目录:硬连接:问题解决方案:1.在复制文件时用execlp函数,虽然有复制成功但是他就跳出整个程序,这就是一个缺陷。

后来我在execlp前面加if(fork)()==0)就可以咯2.硬连接不成功,老是抛出错误信息,后来发现原来是因为我的代码出错,还有我之前已经更改了目录所以就会经常报错3.到现在还不知道为什么我读出来的是乱码情解决实验心得体会:通过这次实验掌握Linux提供的文件系统调用的使用方法;熟悉文件和目录操作的调用用户接口,了解操作系统文件系统的工作原理和工作方式。

相关文档
最新文档