Для сдачи идиотических лаб в универе необходимо при программировании под Linux в точности иммитировать средства WinApi. В связи с этим возник вопрос.
В Windows я могу сделать примерно следующее:
В одном процессе:
CreateFile - создаем файл,
CreateFileMapping - создаем кусок shared memory, связанный с этим файлом,
MapViewOfFile - присоединяем этот кусок (и одновременно проекцию файла) к адресному пространству процесса.
В другом процессе:
OpenFileMapping - открываем кусок памяти/проекцию файла
MapViewOfFile - присоединяем к адресному пространству процесса.
Вопрос в следующем: могу ли я в Unix также сделать область памяти по определенному адресу определенной длины одновременно и проекцией файла и общей памятью между процессами?
Понятно, что с помощью mmap я могу присоединить к адресному пространству или кусок общей памяти, созданной с помощью shm_open, или файл на диске. Но можно ли их объединить?
//Я догадываюсь, что с практической точки зрения смысла в этом никакого, но это Российский Университет с преподавателями без компетенции, но с запущенным синдромом вахтера.