我有一个固定大小的文件。已将文件ftruncate()设置为大小= N * getpagesize()。该文件具有固定大小的记录。我有一个编写器进程,它通过mmap(... MAP_SHARED ...)映射整个文件,并随机修改记录(像访问数组一样)。我有一个读者进程,它也执行mmap(... MAP_SHARED ...)。现在,读取器进程需要确定由于写入器进程向随机记录写入而导致哪个页面的映射发生了更改。有没有办法在用户空间中做到这一点?我在Linux-x86_64上。欢迎使用特定于平台的代码/ hack。感谢您的时间。
编辑:我无权修改编写者进程的代码,以某种方式向我指示已修改的记录。
相关文件:
https://www.kernel.org/doc/Documentation/vm/pagemap.txt
/proc/*/pagemap/proc/kpageflags,并寻求PFN,读取8个字节DIRTY设置了该标志,则该页面是脏的(换言之,编写者已对其进行写操作)| 归档时间: |
|
| 查看次数: |
973 次 |
| 最近记录: |