我有一个大缓冲区:
char *buf = malloc(1000000000); // 1GB
如果我分叉一个新进程,它将有一个buf,它与父进程的buf共享内存,直到一个或另一个写入它.即使这样,内核也只需要分配一个新的4KiB块,其余的将继续共享.
我想复制一下buf,但我只想改变一点副本.我想要不写分支的写时复制行为.(就像你在分叉时免费获得的那样.)
这可能吗?
c fork copy-on-write
c ×1
copy-on-write ×1
fork ×1