首页 > 解决方案 > 如何在没有持久文件的情况下在 Linux 中使用 .NET 内存映射文件?

问题描述

在 Linux 上使用 .NET (dotnet 5.0)MemoryMappedFile.CreateFromFile()可以工作(但不支持mapName),但是CreateNew()andCreateOrOpen()OpenExisting()throw System.PlatformNotSupportedException: Named maps are not supported.。由于不支持命名映射,这意味着仅支持持久文件支持的内存映射。

有没有办法在 Linux 上的 .NET 中获得基于内存的非持久 MMF?也许是一些单声道库,或者 NuGet 中的其他东西?甚至是使用的工作示例pinvoke

我想在 C# .NET 应用程序和其他一些应用程序(可能是 C、C++ 和/或 python)之间共享 linux 中的内存。最好使用共享内存而不是套接字或管道,因为如果消费者不可用,我不希望数据在缓冲区中等待。

标签: c#.netlinuxmemory-mapped-files

解决方案


推荐阅读