Какой лучший и самый надежный способ определить, работает ли 32-битная программа в пользовательском режиме на 64-битном ядре или нет (т.е. если система находится в длинный режим ')? Я бы предпочел не вызывать внешние программы, если это возможно (или загружать какие-либо модули ядра).
Примечание: Я хочу определить, используется ли 64-битное ядро (или действительно, находится ли процессор в длинном режиме), а не просто наличие 64-битного процессора ( / proc / cpuinfo
сообщает мне это, но не то, используется ли 64-битная возможность).
Ядро подделывает 32-битный процессор, если uname
скомпилирован 32-битным или если используется setarch i686
.