fork用于创建从其调用的进程的副本。 这通常是在调用exec系列函数之后进行的。 除此之外还有其他叉子的用法吗? 我能想到一个。用管道功能做IPC。fork系统调用的应用程序
3
A
回答
0
如果您有某种服务器侦听传入连接,则可以派生子进程来处理传入请求(这不一定涉及exec或管道)。
5
当然可以。开始一个过程,做一些数据初始化,然后产生多个工作者是很常见的。它们在地址空间中都有相同的数据,并且是写入时复制。
另一个常见的事情是让主进程监听每个连接的TCP套接字和fork()。这样,可以在现有连接并行处理时立即处理新连接。
我想你忘记了在fork()之后,两个进程都可以访问fork()之前的进程中存在的所有数据。
4
fork的另一个用途是从父进程中分离(回退到init,进程1)。如果有一些进程,比如说带有1111的bash,启动获取pid 2222的myserver,它将有1111作为父进程。假设2222分叉和孩子获得pid 3333.如果现在进程2222退出,则3333将松开其父节点,而是将init作为其新父节点。
启动时,deamons有时会使用此策略,以便与启动它的进程没有父级关系。另见this answer。叉的
1
A“使用”是创建一个Fork Bomb
0
我已经写了一个小的外壳,并且它是完整的叉的(是这是EXEC ..),特别是对于管道元件。 wikipedia page on pipe
相关问题
- 1. fork系统调用
- 2. Unix fork()系统调用
- 3. fork()系统调用c
- 4. fork() - 多个进程和系统调用
- 5. 使用fork的C++程序中的非阻塞系统调用
- 6. 由fork()系统调用返回的值
- 7. 关于fork和execve系统调用
- 8. Android系统应用程序
- 9. 从C++应用程序代码调用Linux系统调用?
- 10. 安装在android系统/系统/应用程序目录中的应用程序
- 11. 从多线程程序调用系统()
- 12. 如何挂接我的android应用程序的系统调用
- 13. Windows程序的系统调用
- 14. 如何升级/系统/应用程序中的应用程序?
- 15. 如何更新我的应用程序/系统/应用程序
- 16. Web应用程序的UI系统?
- 17. Android中的系统应用程序
- 18. fork系统调用行为的一些解释?
- 19. 如何计算C中fork()系统调用的运行时间?
- 20. 关于fork()系统调用中的混淆C
- 21. CHDIR系统调用在C程序
- 22. 环路系统调用C程序
- 23. Linux系统调用流程序列号
- 24. 通过PowerShell/cmd为Linux应用程序调用Windows子系统
- 25. 窗口系统托盘应用程序像卷应用程序
- 26. 调试多线程应用程序后系统错误
- 27. 为什么我们使用fork()或exec()系统调用创建新进程?
- 28. 可可应用程序系统重启
- 29. 修改设置系统应用程序
- 30. Web应用程序登录系统
Yes Ofcourse。谢谢。 – Ankur 2009-08-28 06:58:06
还有“分叉,让一个实例继续工作,第二个检查点计算状态稳定存储”。 – Vatine 2011-04-03 08:39:11
我想这不能用多线程来实现..是因为为了分配新的资源(TCP套接字)我们需要新的进程和线程本身不能做到这一点,因为它们共享公共资源? – 2013-06-26 16:21:05