• 周六. 8月 20th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

fork() 函数的使用

admin

11月 28, 2021
#include <stdio.h>
#include <unistd.h>

static int idata = 111;

int main() {
    int istack = 222;
    pid_t childPid;

    switch(childPid = fork()) {
    case -1:
        fprintf(stderr, "fork error.");
        break;
    case 0:
        idata *= 3;
        istack *= 3;
        break;
    default:
        sleep(3);
        break;
    }

    printf("PID = %ld, %s idata = %d  istack = %d
", (long)getpid(), (childPid == 0)?"(child) ": "(parent)", idata, istack);

    return 0;
}

程序的输出结果表明,子进程在fork()时拥有了自己的栈和数据段拷贝,且对这些段中变量的修改将不影响父进程。

发表回复

您的电子邮箱地址不会被公开。