linux プロセスの親子間でのメモリ共有がされないことを示したいです。
forkによるプロセス生成のプログラムを用いて考えてみたのですが考え方が間違っていましたら
ご助言願えませんでしょうか。
<考え方>
まず、x=10であるとします。
この時点で子プロセスと親プロセスにはx=10が入っています。
そして子プロセスの処理として印字し、子プロセス内x=10であることを確認します。
次に親プロセスの処理としてx=100とします。
もし、親子間でプロセスの共有がされていたならば、この時点で子プロセスでもx=10
となっているはずです。
処理後にxを印字します。ここでx=10のままであるため、プロセスの親子間でメモリの共有がされていないことを示せる、と考えました。
どうぞよろしくお願いいたします。
#include<stdio.h>
int main(int argc, char*argc[])
{
int val,x;
x=10;
switch(fork()){
case 0:
printf("%d",x);
exit(0);
case -1;
perror("child process");
break;
default:
x=100;
wait(&val);
}
printf("%d",x);
}
回答2件
あなたの回答
tips
プレビュー