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型 *)のmalloc(sizeof(INT )); 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 }