【发布时间】:2019-03-23 17:47:46
【问题描述】:
我正在阅读 APUE。
#include "apue.h"
int globvar = 6; /* external variable in initialized data */
int main(void)
{
int var; /* automatic variable on the stack */
pid_t pid;
var = 88;
printf("before vfork\n"); /* we don′t flush stdio */
if ((pid = vfork()) < 0) {
err_sys("vfork error");
} else if (pid == 0) { /* child */
globvar++; /* modify parent′s variables */
var++;
_exit(0); /* child terminates */
}
/* parent continues here */
printf("pid = %ld, glob = %d, var = %d\n", (long)getpid(), globvar, var);
exit()
}
据说vfork()创建一个子进程而不复制父进程的地址空间。父进程将等到子进程调用exit或exec。 Python中是否有类似的东西可以提供这种低级控制?如果可能的话,如何在 Python 中实现这一点?
【问题讨论】:
-
在 Linux 上,Python 中的 fork 通常是写时复制。
-
vfork的这种使用在 C 中已经是未定义的行为。
标签: python linux python-3.x python-2.7 unix