Obter o comportamento de cópia em gravação de fork (), sem fork ()
Eu tenho um buffer grande:
char *buf = malloc(1000000000); // 1GB
Se eu bifurcasse um novo processo, ele teria um buffer que compartilhava a memória com o pai até que um ou outro escrevesse para ele. Mesmo assim, apenas um novo bloco 4KiB precisaria ser alocado pelo kernel, o restante continuaria a ser compartilhado.
Eu gostaria de fazer uma cópia do buf, mas só vou alterar um pouco da cópia. Eu gostaria de copiar-em-escrever sem bifurcação. (Como você ganha de graça quando se bifurca.)
Isso é possível?