Мы можем извлечь page_size во время выполнения через sysconf(_SC_PAGESIZE)
. Моим первым намерением было поместить это значение при запуске программы в объект со статической продолжительностью хранения. Поэтому я намеревался объявить некоторую переменную extern
в области видимости файла следующим образом
extern const size_t page_size;
Но когда я пытаюсь определить его где-то еще в области видимости файла как
const size_t page_size = (const size_t) sysconf(_SC_PAGESIZE);
не компилируется. И это кажется очевидным, поскольку 6.7.9(p4)
:
Все выражения в инициализаторе для объекта, который имеет статический или
продолжительность хранения потока должна быть константным выражением или строкой
литералы.
Я не хотел бы звонить на sysconf(_SC_PAGESIZE)
всякий раз, когда мне нужен размер страницы. Есть ли какое-то решение для этого или какое общее решение?