实验5 - 进程管理

实验目的:

熟悉Linux中进程创建函数的应用。

 

实验内容:

程序1:

  • 用fork()函数完成子进程的创建。
  • 父进程中输出word, 子进程中输出hello
  • 运行休眠函数实现子进程先执行
 1 #include<stdio.h>
 2 #include<sys/types.h>
 3 #include<unistd.h>
 4 #include<stdlib.h>
 5 int main()
 6 {
 7     pid_t pid;
 8     if((pid = fork()) == 0)
 9     {
10         //child process
11         printf("hello\n");
12         exit(0);
13     }
14     else if(pid > 0)
15     {
16         //parent process
17         sleep(5);
18         printf("word\n");
19         exit(0);
20     }
21     else
22     {
23         printf("fork() error\n");
24         exit(0);
25     }
26 }

 

 

fork()调用失败返回-1。

fork函数调用失败的原因主要有两个:

  • 系统中已经有太多的进程
  • 该实际用户ID的进程总数超过了系统限制

fork调用成功会返回两次。

  • 在父进程中,它返回一次,返回值是新派生的子进程ID号
  • 而在子进程中它还返回一次,返回值为0,因此可以通过返回值来区别当前进程是子进程还是父进程。

 

fork调用后,父进程和子进程继续执行fork函数后的指令,是父进程先执行还是子进程先执行是不确定的,

 

posted @ 2015-08-31 13:25  elewei  阅读(317)  评论(0)    收藏  举报