(на самом деле это не ответ, но я не могу добавить его в разделе комментариев, поэтому отвечаю здесь: это всего лишь некоторые результаты моего исследования)
(как я уже говорил ранее в своем первоначальном вопросе, мой интерес был чисто академическим, и мне просто потребовалось несколько методов для расчета размера страницы и проверки того, что все они соответствуют одному значению)
узнать размер страницы системы / микропроцессора без использования sysconf просто для удовольствия! Это то, что я пробовал до сих пор:
-получить фактический размер страницы с помощью sysconf (_SC_PAGE_SIZE): я получил на этом компьютере 0x1000, который составляет 4 КБ (его процессор Intel 386 с 32-разрядным Linux загружен в нем. Следующие мои шаги будут проверять это значение с несколькими другими пути (если я смогу найти их надежно).
- тогда я выделил 1 байт памяти
- в цикле, используя счетчик смещений, я записал за пределы 1 байта выделенную память. он работал нормально до 0x19a8, что превышает размер 1 страницы и чуть меньше 2 страниц!
-SEGV происходит где-то между размером от 1 до 2 страниц ближе к концу. Это повторяется.
- так что этот метод не может надежно найти размер страницы.
Вот почему я задал этот вопрос.
Есть ли хитрость (кроме использования прямой информации, доступной в ядре), чтобы узнать размер страницы? Я даже готов пойти на компромисс с malloc (имеется ввиду использование другого трюка).