没有合适的资源?快使用搜索试试~ 我知道了~
《linux编程技术》-实验2 .doc
需积分: 10 2 下载量 191 浏览量
2019-11-24
20:40:13
上传
评论
收藏 62KB DOC 举报
温馨提示
试读
11页
实验性质:综合性 实验学时:2学时 一、实验目的 1.理解文件系统的基本概念; 2.掌握文件系统的基本操作的实现; 3.能够利用利用文件系统的操作对实际问题进行分析建模,利用计算机求解。 二、实验预备知识 1.复习C/C++语言相关知识(如:数组的和结构体定义和使用),格式化输出等; 三、实验内容
资源推荐
资源详情
资源评论
实验 2 linux 文件系统
实验性质:综合性
实验学时:2 学时
一、实验目的
1.理解文件系统的基本概念;
2.掌握文件系统的基本操作的实现;
3.能够利用利用文件系统的操作对实际问题进行分析建模,利用计算机求解。
二、实验预备知识
1.复习 C/C++语言相关知识(如:数组的和结构体定义和使用),格式化输出等;
三、实验内容
实验一
创建文件 ,写入字符串“;
创建文件 ,写入字符串“ !"
#读 取 中 的 内 容 , 写 入 , 使 中 的 字 符 串 内 容 为 “
!
利用 $% 进行 程序开发,首先需要了解程序要求,理清思路。
按 照 要 求 , 我 们 需 要 用 &' 创 建 两 个 文 件 和 利 用 ()* 将 字 符 串
“”写入 中,同理创建 ,将“ !”写入 ;最
后结合 + 函数,将 中的字符串读出,写入 ;
,
-$.+*&/
-$.+*/
-$.*/
-$.$+*/
-$.+0+1+**/
-$.+0+1*0'+/
*23
4
*5"
)+*)678"
9&'2::5;<=>=?;<=@5A<=>BC3"
2.D3
'))&)2:&':3"
()*25::573"
1
1
+25D5A<A@3"
9&'2::5;<=>=?;<=@5A<=>BC3"
2.D3
'))&)2:&':3"
+2575A<!3"
()*25: !:573"
)25+*)573"
+25D5A<A@3"
()*25+*)573"
&+23"
&+23"
+0+*2:*:3"
')*2:E:3"
+0+*2:)F:3"
)*$)D"
G
通过阅读代码我们可以发现,在创建 之后,我用了 + 函数,并且将偏移量设为
7,这样做的目的是增大 的文件大小,否则会产生文件覆盖,写入的小写字符串将大
写字符串覆盖,导致实验失败。
利用 + 函数”扩充“文件时,应格外注意一点:+ 函数”扩充“文件后,并不能直接使
得文件大小改变,需要在下一个写操作之后才能使文件变大。即第 # 句和第 7 句的位置
不能互换,否则文件内容会发生覆盖。
+0+* 函数内的语句会被终端执行。
实验二
编写代码,完成以下功能:
创建新文件,该文件具有用户读写权限。
采用 $'1$'1* 复制一个新的文件描述符,通过新文件描述符向文件写入
“++<字符串;
#通过原有的文件描述符读取文件中的内容,并且打印显示;
由题目可知,我们需要创建一个文件 file,然后用 dup/dup2/fcntl 中的任意一种方式,复制
file 的文件描述符,通过新的文件描述符将自己的班级名写入 file 中,最后通过原来的文件
描述符读取文件信息。
通过对文件描述符的相关知识的了解,我们知道一个文件描述符只能对应一个文件,而多
个文件描述符可以指向同一个文件。
2
2
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
int main()
{
int fd,fd1;
char *str = "yidongyiban";
fd = open("file",O_CREAT|O_RDWR);
if(fd < 0)
perror("open");
fd1 = dup(fd);
if(fd1 < 0)
perror("dup");
write(fd1,str,strlen(str));
lseek(fd,0,SEEK_SET);
char buf[12];
read(fd,buf,12);
printf("The buf is:%s\n",buf);
close(fd);
close(fd1);
system("rm -f file");
return 0;
}
实验三
编写程序实现以下功能:
输入文件名称,能够判断文件类型,判断实际用户对该文件具有哪些存取权限;
要求打印出文件类型信息,& 节点编号,链接数目,用户 ,组 ,文件大
小信息;
#修改文件的权限为当前用户读写,组内用户读写,组外用户无权限。
首先,在编写程序之前,我们需要了解如何给程序输入文件名称。利用 + 函数当然能
够实现,但是在 语言中,还有一个更加方便的方法能够为程序传递所需参数。
3
3
剩余10页未读,继续阅读
资源评论
大大大大大大大大大泡泡糖
- 粉丝: 108
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功