《使用fork()调用计算Fibonacci数列》由会员分享,可在线阅读,更多相关《使用fork()调用计算Fibonacci数列(3页珍藏版)》请在金锄头文库上搜索。
1、实验二 Linux 进程创建实验目的加深对进程概念的理解练习使用fork()系统调用创建进程练习Linux操作系统下C程序设计实验准备知识1. fork()函数:创建一个新进程.调用格式:#include #include int fork();返回值:正确返回时,等于0表示创建子进程,从子进程返回的ID值;大于0表示从父进程返回的子进程的进程ID值。错误返回时,等于 -1 表示创建失败 实验内容:使用 fork() 调用计算 Fibonacci 数列Fibonacci数列是 0, 1, 1, 2, 3, 5, 8通常表示为:fibo=O,fib1=1, fibn=fibn-1+fibn-2写
2、一个C程序,使用fork()系统调用产生一个子进程来计算Fibonacci 数列,序列通过命令行显示。例如,如果参数为 5,Fibonacci数列的前5个数字将在子进程中被输出。因为父进程和子进程拥有各自的数据拷贝,所以需要由子进程输出。在退出程序之前,父进程调用wait()等待子进程完成。要求提供必要的错误检测以保证在命令行传递的参数是非负数.实验程序:#include #include #include #include int main(int argc, char* argv)pid_t pid;int i;int f0,f1,f2;f0=0;f1=1;if(argv10)fprint
3、f(stderr,request a nun-negative number);pid=fork();/printf(pid = %d ,pid);if(pid0)fprintf(stderr,fork failed);exit(-1);else if(pid=0)printf(argv1 = %dn,atoi(argv1);printf(0 1 );for(i=2; i_ldbl / dtlabl / pt_ldbl / dft_labl to enter Astro/PrimeTime/DFT Labirootlocalhost root&localhost LrootlocaBiost
4、rcotJlocaUiost roQt&localhost rootOlocalnost rootlocalho5t rootfllocalhost rootlocalhost ruu tdlucdUiuslvi*# vi Lab.c-J# gcc -o 丄ab.run lab.c./lab.runvi lab.cocalhost -# vi lab.c -# vi lab.c# gcc -o lab lab,c-1# vi lab.cT# gcc -o lab lab.cT# ,/lab 5argvl - 50 1 1 2 J 5child process cotnp丄己tEdparent process cxitodrootlocalhoEt -#