Как использовать файл с отображением памяти .NET в Linux без постоянного файла? ⇐ C#
-
Гость
Как использовать файл с отображением памяти .NET в Linux без постоянного файла?
При использовании .NET (dotnet 5.0) в Linux MemoryMappedFile.CreateFromFile() работает (но не поддерживает mapName), но CreateNew() и CreateOrOpen() и OpenExisting() выбрасывают System.PlatformNotSupportedException: именованные карты не поддерживаются.. Поскольку именованные карты не поддерживаются, это означает, что поддерживаются только постоянные карты памяти в виде файлов.
Есть ли какой-нибудь способ получить несохраняемый MMF на основе памяти в .NET в Linux? Возможно, какая-то моно-библиотека или что-то еще в NuGet? Или хотя бы рабочий пример с использованием pinvoke?
Я хотел бы разделить память в Linux между приложением C# .NET и некоторыми другими приложениями, возможно, на C, C++ и/или Python. Желательно использовать общую память, а не сокеты или каналы, поскольку я не хочу, чтобы данные ждали в буфере, если потребитель недоступен.
При использовании .NET (dotnet 5.0) в Linux MemoryMappedFile.CreateFromFile() работает (но не поддерживает mapName), но CreateNew() и CreateOrOpen() и OpenExisting() выбрасывают System.PlatformNotSupportedException: именованные карты не поддерживаются.. Поскольку именованные карты не поддерживаются, это означает, что поддерживаются только постоянные карты памяти в виде файлов.
Есть ли какой-нибудь способ получить несохраняемый MMF на основе памяти в .NET в Linux? Возможно, какая-то моно-библиотека или что-то еще в NuGet? Или хотя бы рабочий пример с использованием pinvoke?
Я хотел бы разделить память в Linux между приложением C# .NET и некоторыми другими приложениями, возможно, на C, C++ и/или Python. Желательно использовать общую память, а не сокеты или каналы, поскольку я не хочу, чтобы данные ждали в буфере, если потребитель недоступен.
Мобильная версия