使用fork()调用计算Fibonacci数列

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验二Linux进程创建实验目的加深对进程概念的理解练习使用fork()系统调用创建进程练习Linux操作系统下C程序设计实验准备知识1.fork()函数:创建一个新进程.调用格式:#includesys/types.h#includeunistd.hintfork();返回值:正确返回时,等于0表示创建子进程,从子进程返回的ID值;大于0表示从父进程返回的子进程的进程ID值。错误返回时,等于-1表示创建失败实验内容:使用fork()调用计算Fibonacci数列Fibonacci数列是0,1,1,2,3,5,8…….通常表示为:fib0=0,fib1=1,fibn=fibn-1+fibn-2写一个C程序,使用fork()系统调用产生一个子进程来计算Fibonacci数列,序列通过命令行显示。例如,如果参数为5,Fibonacci数列的前5个数字将在子进程中被输出。因为父进程和子进程拥有各自的数据拷贝,所以需要由子进程输出。在退出程序之前,父进程调用wait()等待子进程完成。要求提供必要的错误检测以保证在命令行传递的参数是非负数.实验程序:#includestdio.h#includestdlib.h#includeunistd.h#includesys/types.hintmain(intargc,char*argv[]){pid_tpid;inti;intf0,f1,f2;f0=0;f1=1;if(argv[1]0){fprintf(stderr,requestanun-negativenumber);}pid=fork();//printf(pid=%d,pid);if(pid0){fprintf(stderr,forkfailed);exit(-1);}elseif(pid==0){printf(argv[1]=%d\n,atoi(argv[1]));printf(01);for(i=2;i=atoi(argv[1]);i++){f2=f0+f1;f0=f1;f1=f2;printf(%d,f2);}printf(\nchildprocesscompleted\n);}else{wait(NULL);printf(parentprocessexited);}return0;}实验结果

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功