相关疑难解决方法(0)

获取fork()的copy-on-write行为,不带fork()

我有一个大缓冲区:

char *buf = malloc(1000000000); // 1GB
Run Code Online (Sandbox Code Playgroud)

如果我分叉一个新进程,它将有一个buf,它与父进程的buf共享内存,直到一个或另一个写入它.即使这样,内核也只需要分配一个新的4KiB块,其余的将继续共享.

我想复制一下buf,但我只想改变一点副本.我想要不写分支的写时复制行为.(就像你在分叉时免费获得的那样.)

这可能吗?

c fork copy-on-write

8
推荐指数
1
解决办法
2010
查看次数

标签 统计

c ×1

copy-on-write ×1

fork ×1