私は大きなバッファを持っています:
char *buf = malloc(1000000000); // 1GB
新しいプロセスをフォークした場合、どちらかが書き込むまで、親のbufとメモリを共有するbufがあります。それでも、カーネルが割り当てる必要があるのは1つの新しい4KiBブロックだけで、残りは引き続き共有されます。
bufのコピーを作成したいのですが、コピーを少し変更するだけです。フォークせずにコピーオンライト動作をしたいのですが。(フォークするときに無料で入手できるように。)
これは可能ですか?