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