我在Linux中创建进程时感到困惑.到目前为止,我认为我们可以通过调用以下系统调用来创建进程.@H_301_2@
>系统()
> exec()系列调用
> fork()系统调用@H_301_2@
但:@H_301_2@
> system():但是当“系统”系统调用执行shell上的输入可执行文件时,shell正在创建一个子进程来执行输入.所以shell调用子进程然后我们可以说fork正在为此创建进程.
> exec系统调用:当这个系统调用时,用新进程写入当前正在运行的进程.所以它也创建了一个新进程,但是使用相同的地址空间.我认为它也在调用call fork来创建进程.@H_301_2@
我很困惑以上事实是创建新进程或只有fork系统的可能方法.最佳答案系统调用的exec系列不会调用fork,也不会创建新的进程.
它只用新二进制文件覆盖现有进程.@H_301_2@
在linux用户程序中,fork是创建新进程的唯一函数.虽然fork内部调用克隆和其他系统调用.@H_301_2@
在另一方面,系统只是fork和exec的包装器.创建进程的实际任务是通过fork in system完成的.因此系统不是创建新流程的方法.@H_301_2@ 总结
以上是内存溢出为你收集整理的我们可以使用c在linux中创建进程的方法有多少全部内容,希望文章能够帮你解决我们可以使用c在linux中创建进程的方法有多少所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)