Linux下如何使用C语言创建进程

进程由UNIX系统首先实现,在此之前,多道程序只能通过批处理的方式来执行 。进程概念提出之后,操作系统从此就焕然一新 。
linux中进程的概念和UNIX中完全一致 。
 
进程是什么?我们可以简单地用一句话定义:
进程是程序的执行 。
 
对于这个定义,懂的人认为定义得非常准确,不懂的人却更加糊涂了 。
 
理解进程,最好的方式,就是编写程序,创建一个进程 。
Linux/Unix下创建进程的方法是调用fork()函数 。 

Linux下如何使用C语言创建进程

文章插图
 
单词fork的含义是分叉,父进程调用fork(),当fork()函数返回时,程序流程产生了分叉,子进程就生成了 。
【Linux下如何使用C语言创建进程】 
fork调用的逻辑是这样的:pid_t thePid;thePid = fork();if (thePid < 0){    //生成进程失败     return;}if (thePid == 0){    //子进程逻辑}else{    //父进程逻辑} 
实际上,我们编写代码时,只能根据fork()的返回值来判断我们现在执行的是父进程的逻辑,还是子进程的逻辑:
1、对于父进程,fork()返回子进程的ID;
2、对于子进程,fork()返回0 。
 
下面是我编写的一个程序:
Linux下如何使用C语言创建进程

文章插图
getpid的功能是获得当前进程的ID
 
这是程序某次运行的情况: 
Linux下如何使用C语言创建进程

文章插图
 
 
可以发现:
(1)调用fork之前,进程的ID是13088;
(2)调用fork之后,父进程的ID仍然是13088,子进程的ID是13093;
(3)父进程和子进程在睡眠后再次运行,由操作系统调度,没有固定的次序 。
 
谢谢您的阅读!




    推荐阅读