我可以在 Linux 中执行写时复制 memcpy 吗?

标签 c linux memory-management

我有一些代码,我经常在其中复制一大块内存,通常只对其进行非常小的更改。

我已经实现了一个跟踪更改的系统,但我认为这可能会很好,如果可能的话告诉操作系统对内存进行“写时复制”,让它只处理制作副本那些改变的部分。然而,虽然 Linux 会进行写时复制,例如当 fork()ing 时,我无法找到一种方法来控制它并自己完成。

最佳答案

你最好的机会可能是 mmap() 原始数据到文件,然后 mmap() 再次使用 MAP_PRIVATE 相同的文件.

关于我可以在 Linux 中执行写时复制 memcpy 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1565177/

相关文章:

c - 为什么这个缓冲区定义在一个循环内?

c - 输出是 5 5 6 7 8 9 怎么解释?

linux - 使用来自不同系统的 GDB 分析核心转储会给出 .dynamic 部分警告

memory-management - 使用 `make` 并发内存分配?

c++ - fuse (用户空间中的文件系统)错误 : expected primary-expression before ‘.’ token

c - 用于演示矩阵的简单 C 图形库

linux - SENDTO 发送数据包,但嗅探器看不到它

linux - shell 中的 sed 命令不会替换模式的第二个匹配项

c - 我怎样才能访问正在运行的程序的内存?

c++ - 是否可以在其范围之外访问局部变量的内存?