是否可以将套接字映射到虚拟内存?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以将套接字映射到虚拟内存?相关的知识,希望对你有一定的参考价值。
我正在寻找类似于内存映射文件的东西。它会使虚拟内存与字节的字节输出匹配,并在没有收到新字节时阻塞。这可能吗?
我正在寻找专门针对Rust的解决方案,但如果有人知道另一种语言具有这样的功能,我可能能够与它进行交互。
答案
不,这没有意义。套接字不是随机访问设备,并且映射的长度未定义。
另一答案
创建内存映射文件时,您可以指定要映射的文件以及文件中的数据范围。映射文件的区域是固定的。如果内存映射文件增长(无论出于何种原因),则不会映射新数据。
在许多系统中,内存映射文件的实现方式与分页相同。它不是将虚拟内存映射到页面文件,而是映射到调用者选择的文件。
您要求的内容没有意义,因为您要求使用固定长度数据结构的可变长度数据。
另一答案
我担心它不是一种支持内存映射套接字的编程语言指定功能。以下文档可能对您有所帮助。
https://www.kernel.org/doc/Documentation/networking/packet_mmap.txt
以上是关于是否可以将套接字映射到虚拟内存?的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核 内存管理内存管理系统调用 ① ( mmap 创建内存映射 | munmap 删除内存映射 | mprotect 设置虚拟内存区域访问权限 )