一尘不染

如果我有一个进程并克隆了它,那么PID是否相同?

linux

只是一个简单的问题,如果我克隆一个进程,则克隆的进程的PID是相同的,是吗?fork()创建一个子进程,其PID不同,但其他所有事物都相同。Vfork()创建一个具有相同PID的子进程。Exec致力于将当前正在执行的流程更改为其他流程。

我在所有这些陈述中都正确吗?


阅读 379

收藏
2020-06-07

共1个答案

一尘不染

不完全的。如果通过fork / exec或vfork /
exec克隆进程,则将获得新的进程ID。fork()将为您提供具有新进程ID的新进程,并exec()用新进程替换该进程,但仍保留该进程ID。

这里

vfork()函数与fork()的不同之处仅在于子进程可以与调用进程(父进程)共享代码和数据。如果滥用vfork(),这将极大地加快克隆活动的速度,并有可能损害父进程的完整性。

2020-06-07