読者です 読者をやめる 読者になる 読者になる

Cowの確認

fork(fork(2))したときに親プロセスのコピーとして子プロセスを生成する。ただ、メモリ上の内容をすべてコピーするのはもったいないのでCowって仕組みがあるんだけど、これ子プロセスのほうで内容書き換えたらアドレスがかわるかなと思ってたんだけどかわらない。。

なんか想定してた挙動とちがう。。

use strict;
use warnings;

my $hoge = {
    aa => 1,
};

if( my $pid = fork() ) {
    print $hoge . "\n";
    print "parent:$$,child:$pid" . "\n";
}
else {
    print $hoge . "\n";
    print "child:$$" . "\n";
    $hoge->{aa} = 10;
    print $hoge . "\n";
}
HASH(0x16e2de8)
parent:18875,child:18876
HASH(0x16e2de8)
child:18876
HASH(0x16e2de8)

http://ja.wikipedia.org/wiki/Fork