【发布时间】:2012-08-01 07:35:05
【问题描述】:
我很好奇从设置了大多数标志的进程调用 clone 的行为(这样两个进程共享一个执行上下文,即共享地址空间、文件描述符 talbe 等)。我无法使用在线材料完全回答我的问题。
现在假设我从克隆的进程中调用 execve。这会将进程的映像替换为全新的映像,破坏附加的内存段,丢弃分配的内存等,但是父进程会发生什么?给定这些共享(例如,所有分配的内存区域),它们是否也会被释放?
新执行的进程是否仍与父进程共享地址空间?
【问题讨论】:
-
clone在 Linux 中用于实现线程创建 (pthread_create) 和进程创建 (fork)。execve替换整个进程。
标签: c multithreading process fork system-calls