操作系统文件系统,进程管理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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_

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档