我们可以使用c在linux中创建进程的方法有多少

前端之家收集整理的这篇文章主要介绍了我们可以使用c在linux中创建进程的方法有多少前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在Linux中创建进程时感到困惑.到目前为止,我认为我们可以通过调用以下系统调用来创建进程.

>系统()
> exec()系列调用
> fork()系统调用

但:

> system():但是当“系统”系统调用执行shell上的输入可执行文件时,shell正在创建一个子进程来执行输入.所以shell调用子进程然后我们可以说fork正在为此创建进程.
> exec系统调用:当这个系统调用时,用新进程写入当前正在运行的进程.所以它也创建了一个新进程,但是使用相同的地址空间.我认为它也在调用call fork来创建进程.

我很困惑以上事实是创建新进程或只有fork系统的可能方法.

最佳答案
系统调用的exec系列不会调用fork,也不会创建新的进程.
它只用新二进制文件覆盖现有进程.

在linux用户程序中,fork是创建新进程的唯一函数.虽然fork内部调用克隆和其他系统调用.

在另一方面,系统只是fork和exec的包装器.创建进程的实际任务是通过fork in system完成的.因此系统不是创建新流程的方法.

猜你在找的Linux相关文章