Получить поведение копирования (при записи) для fork () ing без fork ()

У меня большой буфер:

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

Если бы я разветвлял новый процесс, у него был бы buf, который разделял бы память с родительским buf, пока один или другой не записал в него. Даже в этом случае ядро должно было бы выделить только один новый блок размером 4 КБ, а остальные будут продолжать использоваться совместно.

Я хотел бы сделать копию buf, но я собираюсь изменить только небольшую часть копии. Я бы хотел, чтобы поведение при копировании при записи не было разветвленным. (Как вы получаете бесплатно при разветвлении.)

Это возможно?

Ответы на вопрос(1)

Ваш ответ на вопрос