实验2 进程创建与控制实验 联系客服

发布时间 : 星期四 文章实验2 进程创建与控制实验更新完毕开始阅读242c7d334afe04a1b171de45

实验2 进程创建与控制实验

一、实验目的

1. 加深对进程概念的理解

2. 练习使用fork()系统调用创建进程 3. 练习使用wait()系统调用实现进程同步 4. 进一步练习Linux操作系统下C程序设计 二、实验内容:使用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()等待子进程完成。

要求提供必要的错误检测以保证在命令行传递的参数是非负数。 三、实验结果

1. 源代码:

#include #include #include #include

int main(int argc, char* argv[])

{

pid_t pid; int i; int f0, f1, f2; f0 = 0; f1 = 1; if(argv[1] < 0)

fprintf(stderr, \ pid = fork(); if(pid < 0) {

fprintf(stderr, \ exit(-1); }

else if(pid == 0) {

printf(\ printf(\

for(i = 2; i <= atoi(argv[1]); i++) {

f2 = f0 + f1; f0 = f1;

f1 = f2; printf(\ }

printf(\ } else {

wait(NULL);

printf(\ } return 0; }

2. 结果截图: