天天看點

Linux下父子程序的全局變量

磨砺技術珠矶,踐行資料之道,追求卓越價值 

回到上一級頁面: PostgreSQL雜記頁     回到頂級頁面:PostgreSQL索引頁 

[作者 高健@部落格園  [email protected]

用這個從網上找的例子,看父子程序對全局變量的擁有是否不同:

複制代碼

#include <sys/types.h>    

#include <stdio.h>    

#include <stdlib.h>    

int glob = 6;    

char buf[] = "a write to stdout\n";    

int main()    

{    

    int var;    

    pid_t pid;    

    var = 88;    

    fprintf(stderr, "%s", buf); 

    printf("before fork/n");    

    if(( pid = fork() ) < 0 )    

    {    

            fprintf(stderr, "fork error/n");

    }    

    else if(pid == 0)    

            glob++;

            var++;

            printf("child process/n");

            printf("pid = %d, father pid = %d, glob = %d, var = %d/n", 

                        getpid(), getppid(), glob, var);

            exit(0);

    else    

            sleep(2);

            printf("father process/n");

     return 0;    

}

運作結果如下:

a write to stdout

before fork

child process pid=13712, father pid=13711, glob=13662, var=7

father process pid=13711, father pid=13539, glob=6, var=6

這表明,父子程序各有各的全局變量。

本文轉自健哥的資料花園部落格園部落格,原文連結:http://www.cnblogs.com/gaojian/archive/2012/07/27/2612230.html,如需轉載請自行聯系原作者

繼續閱讀