您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 使用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;}实验结果
本文标题:使用fork()调用计算Fibonacci数列
链接地址:https://www.777doc.com/doc-5042438 .html