加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 19:16:15 所属栏目:Linux 来源:网络整理
导读:我在Linux中创建进程时感到困惑.到目前为止,我认为我们可以通过调用以下系统调用来创建进程. 系统() exec()系列调用 fork()系统调用 但: system():但是当“系统”系统调用执行shell上的输入可执行文件时,shell正在创建一个子进程来执行输入.所以shell调用

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

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

但:

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读