Uzyskaj zachowanie widelca () ing bez kopiowania na zapisie ()

Mam duży bufor:

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

Gdybym rozwidlił nowy proces, miałby buf, który miałby pamięć współdzieloną z bufkiem rodzica, dopóki jedna lub druga nie napisałaby do niego. Nawet wtedy, tylko jeden nowy blok 4KiB musiałby zostać przydzielony przez jądro, reszta byłaby nadal udostępniana.

Chciałbym zrobić kopię buf, ale zmienię tylko trochę kopii. Chciałbym zachowywać się jak kopia bez zapisu. (Jak dostajesz za darmo podczas rozwidlania.)

czy to możliwe?

questionAnswers(1)

yourAnswerToTheQuestion