- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统文件系统,进程管理.doc
北京联合女芳信息夕院
Information College of Beijing Union University
计算机操作系统实验报告
题
目:
姓
名:
学
号:
专
业:
班
级:
实验三
XXX
XXXx
计算机科学与技术
计算机1101B
北京联合大学■信息学院编制
实验三
实验目的
熟悉有关文件的系统调用,学习文件系统的系统调用命令,提高对文件系统实现功 能的理解和学握。
实验内容
实验相关知识
(1) Int creat (const char *pathnamo, mode_t mode);
返回值:如果止确创建,返回文件的描述符;否则返回一1;
Pathname是要创建文件的路径名。创建文件时,文件只能以只写方式打开 Mode用來规定该文件的拥有者,小组用八和英他用八的访问权限,要求用按位逻辑加对下 列符号常量进行所需的组合(同open函数)。
2) int open (const char *pathname, int flags);
int open(const char *palhname, int flags, mode_t mode);
int close(int fd);
open函数有两个形式.?其中pathname是我们要打开的文件名(包含路径名称,缺省是认 为在当前路径Fffi). flags可以去卜-面的一个值或者是儿个值的纽合.
O_RDONLY:以只读的方式打开文件.
0 WRONLY:以只写的方式打开文件.
O.RDWR:以读写的方式打开文件.
O_APPEND:以追加的方式打开文件.
O_CREAT:创建一个文件.
O_EXEC:如呆使用了 O_CREAT而且文件已经存在,就会发生一个错误.
CLNOBLOCK:以非阻塞的方式打开一个文件.
O_TRUNC:如果文件已经存在,则删除文件的内容.
前面三个标志只能使用任意的一个.如果使用了 O_CREATE标志,那么我们要使用 open的第二种形式.还要指定mode标志,川來表示文件的访问权限.mode町以是以卜-情 况的组合.
S_TRUSR用户可以读S」WUSR用户可以写
S_TXUSR用户可以执行S_IRWXU用户可以读写执行
我们也可以用数字来代表各个位的标志.Linux总共用5个数字来表示文件的各种权 如果我们打开文件成功,open会返回一个文件描述符.我们以后对文件的所有操作 就可以对这个文件描述符进行操作了.
当我们操作完成以后,我们要关闭文件了,只要调用close就可以了,其中fd是我们要关 闭的文件描述符.
3) ssize_t read(int fd, void ^buffer, size_t count);
ssize_t write(int fd, const void *buffer, size_t count);
fd是我们耍进行读写操作的文件描述符,buffer是我们要写入文件内容或读出文 件内容的内存地址.count是我们要读写的字节数.
对于普通的文件read从指定的文件(fd)屮读取count字节到buffer缓冲区屮(记住我
们必须提供一个足够人的缓冲区),同时返冋count.
如果read读到了文件的结尾或者被一个信号所中断,返回值会小于count.如果是由信 号中断引起返M, ifU.R没有返回数据,read会返回且设置ernw为EINTR.当程序读到 T文件结尾的时候,read会返回0.
write从buffer中写count字节到文件fd中,成功时返回实际所写的字节数.
(2)具体实现
使用creat open read write等系统调用用C语言编程实现复制文件。
实验流程图
实验清单
#inelude
★include
#include
stdio. h
sys/types. h
unistd. h
ttinclude
ttinclude
sys/stat.h
fcntl. h
Int main(int ar, int av)
{
int fdl, fd2, fr, fw;//定义四个变量
char r[50]二” hi!” ;〃定义一个大小为50的字符串数组并赋值” hi!” char *fy二” /home/stu/hzh. txt ;//源文件 char *fd二/home/stu/hzhl. txt” ;〃目标文件
char buuf f [50];//缓存
creat (fy, 10705) ;//创建源文件
creat (fd, 10705) ;//创建目标文件
fr=open(fy, O_RDWR);//打开源文件,可写可读,赋给句柄fr
write(fr, r, 50) ;//把r写入源文件中
close(fr) ;//关闭源文件
fr=open(fy, O_
您可能关注的文档
最近下载
- 3万吨全粉5万吨法式薯条加工项目可行性研究报告编制格式说明(模板型word).pdf VIP
- 初中物理竞赛试题精选精编第16讲电与磁(含答案与解析).docx VIP
- 第6章 机械振动-改 h(实际4h).ppt
- 2023-2024全国初中物理竞赛试题精选精编第16讲电与磁(解析版).doc VIP
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案.docx VIP
- 中国共产党统一战线工作条例学习PPT课件.pptx VIP
- 前程无忧国企入职题库.pdf VIP
- QCT29106-2004线束标准详细介绍.pdf VIP
- 钠离子电池正极材料的发展与产业化研究.pdf
- 进度控制监理细则.doc VIP
文档评论(0)