Мне нужен способ на C или C++, чтобы получить свободную память, доступную из /dev/shm
. Обратите внимание, что на моей архитектуре ARM
в Linux, к сожалению, ipcs
сообщает о неверном макс. доступная информация о памяти, но df -h
правильно дает мне текущую доступную память от tmpfs
.
Проблема в том, что я пытаюсь выделить общую память через boost::interprocess::shared_memory_object::truncate
, но эта функция не срабатывает, когда память недоступна. Эта проблема, по-видимому, не в boost::interprocess
, а в базовом ftruncate()
, который не возвращает соответствующую ошибку, когда нет доступной памяти ( https://svn.boost.org/trac/boost/ticket/4374 ), так что boost
не может ничего кинуть.