Obtenga el comportamiento de copia en escritura de fork () ing, without fork ()

Tengo un búfer grande:

char *buf = malloc(1000000000); // 1GB

Si hubiera un nuevo proceso, tendría un buf que compartía la memoria con el buf de los padres hasta que uno u otro le escribieran. Incluso entonces, solo un nuevo bloque de 4KiB tendría que ser asignado por el núcleo, el resto seguiría siendo compartido.

Me gustaría hacer una copia de buf, pero solo voy a cambiar un poco la copia. Me gustaría el comportamiento de copia en escritura sin bifurcar. (Como se obtiene de forma gratuita cuando se bifurca).

es posible?

Respuestas a la pregunta(1)

Su respuesta a la pregunta