技术解析

vfork 在 linux 上的运行结果与 APUE 上描述不一致, 大家帮忙看看?
0
2021-07-13 09:40:00
idczone

代码如下:

#include "include/apue.h"

int glob = 6; /* external variable in initialized data */

int main(void)
{
  int var; /* automatic variable on the stack */
  pid_t pid;

  var = 88;
  printf("before fork\n");

  if ((pid = fork()) < 0) {
    err_sys("fork error");
  } else if (pid == 0) {
    /* child */
    glob++;
    var++;
    _exit(0);
  } 

  printf("pid = %d, glob = %d, var = %d\n", getpid(), glob, var);
  exit(0);
}

lz给的例子中的代码是调用是fork,而不是调用的vfork。

都是cp惹得祸。。谢谢提醒

。。

子进程对父进程中的同名变量的更改,不会影响到父进程的值

数据地带为您的网站提供全球顶级IDC资源