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. 使用fork系统调用
- 3. Unix fork()系统调用
- 4. fork()系统调用c
- 5. 系统调用fork输出:
- 6. fork() - 多个进程和系统调用
- 7. 使用fork的C++程序中的非阻塞系统调用
- 8. 使用gdb进行fork()系统调用
- 9. 由fork()系统调用返回的值
- 10. linux中的fork()系统调用
- 11. fork()系统调用和while循环
- 12. _exit(),fork()和waitpid()系统调用
- 13. 系统调用fork不退出
- 14. 关于fork和execve系统调用
- 15. fork和wait系统调用问题
- 16. 系统调用和系统程序
- 17. Android系统应用程序
- 18. Android系统应用程序
- 19. 从C++应用程序代码调用Linux系统调用?
- 20. django使用教程应用程序中断系统调用
- 21. 从多线程程序调用系统()
- 22. 如何挂接我的android应用程序的系统调用
- 23. Windows程序的系统调用
- 24. 如何更新我的应用程序/系统/应用程序
- 25. 如何升级/系统/应用程序中的应用程序?
- 26. Web应用程序的UI系统?
- 27. Android系统应用程序的Android java.lang.SecurityException
- 28. Android中的系统应用程序
- 29. 操作系统中的fork()
- 30. 关于fork()系统调用中的混淆C
Yes Ofcourse。谢谢。 – Ankur 2009-08-28 06:58:06
还有“分叉,让一个实例继续工作,第二个检查点计算状态稳定存储”。 – Vatine 2011-04-03 08:39:11
我想这不能用多线程来实现..是因为为了分配新的资源(TCP套接字)我们需要新的进程和线程本身不能做到这一点,因为它们共享公共资源? – 2013-06-26 16:21:05