У меня есть некоторая программа, обрабатывающая некоторые данные либо в файле, либо в некотором буфере памяти. Я хочу предоставить единый способ обработки этих случаев.
Я могу либо 1) mmap файл, чтобы мы могли обрабатывать их равномерно в качестве буфера памяти; 2) создайте FILE *, используя fopen и fmemopen, чтобы получить равномерное обращение к ним как FILE *.
Однако я не могу использовать оба способа выше. Мне нужно обрабатывать их как файловый дескриптор, потому что одна из библиотек, которые я использую, принимает только файловый дескриптор, а mmap - в дескрипторе файла.
Итак, мой вопрос, учитывая буфер памяти (мы можем предположить, что он выровнен по 4K), можем ли мы получить дескриптор файла, который поддерживается этим буфером памяти? Я видел в каком-то другом вопросе popen это ответ, но я не думаю, что fd в popen может быть mmap-ed.