親と子の共有リソース

1つの#include <stdio.hの>
 2の#include <STDLIB.H>
 3。書式#include <unistd.h>
 4。 INT  グローバル = 1 ; / * グローバル変数を初期化し、データセグメントが存在する* / 
5。 
6。 INTメイン(ボイド7。 {
 8。      PID pid_t; / * ストアプロセスID * / 
9      int型スタック= 1 ; / * ローカル変数、スタックの存在* / 
10      のint *ヒープ; / * ヒープ変数のポインタへのポインタ* / 
11      ヒープ=(int型 *)のmallocsizeofINT ));
 12である      * =ヒープ3。 ; / * 。スタックの値は設定3 * / 
13である      PIDがフォーク()=; / * 新しいスレッドを作成する* / 
14      IF(PID < 0 ){
 15          にperror(" !\ N-をフォックに失敗" );
 16          終了( - 1 );
 17      }
 18である      IF(PIDの== 0 ){
 19          / * 子プロセス、変数の値を変更する* / 
20することで         、グローバル ++ ;
 21である          スタック++22である          (ヒープ*)++ ;
 23は、         / * 変数の値を印刷* / 
24          のprintf(" サブプロセスにおいて、グローバル:%のD、スタック:%のD、ヒープ:%D \ N- "グローバル、スタック、 * ヒープ);
 25          終了(0 );
 26である     }
 27      {
 28          / * * / 
29          SLEEP(2); / * スリープ2秒、子プロセスが終了したことを確実にするために、親プロセスが実行される* / 
30          のprintf(" 親、グローバルで:%のD、スタック:%のD、ヒープ:%D \ N- "グローバル、スタック、* ヒープ);
31      }
 32      リターン 0 33 }

 

おすすめ

転載: www.cnblogs.com/--lr/p/11260932.html