Моего друга попросили во время собеседования написать программу, которая измеряет объем доступной оперативной памяти. Ожидаемый ответ заключался в использовании malloc()
в режиме бинарного поиска: выделение больших и больших частей памяти до получения сообщения об ошибке, уменьшение размера части и суммирование объема выделенной памяти.
Я считаю, что этот метод будет измерять объем виртуальной, а не физической памяти. Но мне стало любопытно по этому поводу.
Есть ли способ узнать объем доступной оперативной памяти внутри программы, не используя exec(dmesg |grep -i memory)
?