<返回更多

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

2020-05-07    
加入收藏

进程由UNIX系统首先实现,在此之前,多道程序只能通过批处理的方式来执行。进程概念提出之后,操作系统从此就焕然一新。

linux中进程的概念和UNIX中完全一致。

 

进程是什么?我们可以简单地用一句话定义:

进程是程序的执行。

 

对于这个定义,懂的人认为定义得非常准确,不懂的人却更加糊涂了。

 

理解进程,最好的方式,就是编写程序,创建一个进程。

Linux/Unix下创建进程的方法是调用fork()函数。

 

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

 

单词fork的含义是分叉,父进程调用fork(),当fork()函数返回时,程序流程产生了分叉,子进程就生成了。

 

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)父进程和子进程在睡眠后再次运行,由操作系统调度,没有固定的次序。

 

谢谢您的阅读!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>