富洋进出口有限公司:操作系统实验程序修改,回答无对错之分

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 07:35:46
这是两道操作系统实验:创建子进程的程序,程序思想原理是正确的,但是在语法和骗写中有错误,请各位大虾指教,回答无对错之分。再说明这两段程序的作用

exam1.c 创建子进程示例1
//父进程创建一个子进程,父进程显示"金木水火土",子进程显示"日月星辰",多次运行该程序会得到不同的运行结果。
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
int pid,n=0;
srand(getpid());/*设置随机种子*/
if ((pid=fork())!=0)
while(n<5)
{printf("%d",n++);
printf("金木水火土\n");
sleep(rand()%3);} //睡眠
else
while(n<5)
{printf("%d",n++);
printf("日月星辰\n");
sleep(rand()%3);
}
}

exam2.c 创建子进程示例2
//子进程改变了全局变量globa 和局部变量vari的值。通过调试运行,体会进程的运动轨迹。
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int globa=4;
int main(void)
{ pid_t pid;
int vari=5;
printf("before fork\n");
if ((pid=fork())<0){
printf("fork error\n");
exit(0);
}
else if (pid==0){
globa++;
vari--;
printf("Child changed the vari anf globa.\n");
}
else printf("Parent didn't changed the vari and globa.\n");
printf("globa=%d,vari=%d\n",globa,vari);
}