Linux下父子進程的全局變量


磨礪技術珠磯,踐行數據之道,追求卓越價值 

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

[作者 高健@博客園  luckyjackgao@gmail.com] 

 

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

#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"); printf("pid = %d, father pid = %d, glob = %d, var = %d/n",
                        getpid(), getppid(), glob, var); } 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

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

 

[作者 高健@博客園  luckyjackgao@gmail.com] 

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

磨礪技術珠磯,踐行數據之道,追求卓越價值 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM