Как использовать файл с отображением памяти .NET в Linux без постоянного файла?C#

Место общения программистов 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. Желательно использовать общую память, а не сокеты или каналы, поскольку я не хочу, чтобы данные ждали в буфере, если потребитель недоступен.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»