Linux复习程序注释.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文档。上传文档
查看更多
Linux复习程序注释

前面的可能考选择题,填空题,全部题型如下: 一、选择题(10个题,每题2分,共20分) 二、填空题(10个空,每空2分,共20分) 三、程序阅读题(2道题,共20分) 四、未知题型(1道题,共20分) 五、编程题(1道题,共20分) P 154 文件I/O操作 open()、read()、write()、lseek()和close() 仔细阅读程序,能写注释或填空。 /* copy_file.c */ #include unistd.h #include sys/types.h #include sys/stat.h #include fcntl.h #include stdlib.h #include stdio.h #define BUFFER_SIZE 1024 /* 每次读写缓存大小1KB,关于《linux读写文件运行效率》的传送门*/ #define SRC_FILE_NAME src_file /* SRC_FILE_NAME代替src_file */ #define DEST_FILE_NAME dest_file /* 目标文件名文件名,之后用DEST_FILE_NAME代替dest_file */ #define OFFSET 10240 /* 复制的数据大小 1MB,也是lseek函数的偏移量*/ int main() { int src_file, dest_file; //定义了2个变量 unsigned char buff[BUFFER_SIZE]; //设定缓存的大小,定义为数组,存放读写缓存 int real_read_len; /* 以只读方式打开源文件 */ src_file = open(SRC_FILE_NAME, O_RDONLY); //前面的src_file是变量名,成功时为3,失败时为-1 //也可以写成 src_file = open(src_file, O_RDONLY); /* 以只写方式打开目标文件,若此文件不存在则创建该文件, 访问权限值为644 */ dest_file = open(DEST_FILE_NAME, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); //前面的dest_file是变量名,成功时为4,失败时为-1 //也可以写成 dest_file = open(dest_file,O_WRONLY|O_CREAT,644); if (src_file 0 || dest_file 0) //打开文件失败时 { printf(Open file error\n); //输出这句话 exit(1); // exit()中,1是返回给操作系统的,0是正常退出} /* 将源文件的读写指针移到最后10KB的起始位置*/ lseek(src_file, -OFFSET, SEEK_END); //从文件的结尾处向前移动10KB // OFFSET 是偏移量,正值向前移,负值向后移。这里在 OFFSET 前加了负号。 // SEEK_END 表示从文件的结尾开始。 //也可以写成 lseek(src_file, -10240, SEEK_END); /* 读取源文件的最后10KB数据并写到目标文件中,每次读写1KB */ while ((real_read_len = read(src_file, buff, sizeof(buff))) 0) //读取成功时返回读到的字节数 //红字部分也可以写成 read(src_file, buff, 1024) { write(dest_file, buff, real_read_len); // real_read_len 在上一步被赋值为 1KB,即real_read_len = 1024; //也可以写成write(src_file, buff, 1024) } close(dest_file); //关闭文件,这里等同于close(4); close(src_file); //关闭文件,这里等同于close(3); return 0; //main函数里,return 0 就是关闭程序。子程序里 return 为返回值。 } P 214 子进程和父进程 wait()和waitpid() 仔细阅读程序,能写注释或填空,写出输出结果。 wait()函数是用于使父进程阻塞,直到一个子进程结束或者该进程接到了一个指定的信号为止。 如果该父进程没有子进程或者他的子进程已经结束,则wait()就会立即返回。 本例中首先使用fork()创建一个子进程,然后让其子进程暂停5s(使用了sleep()函数)。接下来对原有的

文档评论(0)

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

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

1亿VIP精品文档

相关文档