检测32位用户模式程序是否在64位内核上运行(即系统是否处于“长模式”)的最好和最可靠的方法是什么?如果可能,我宁愿不调用外部程序(或者必须加载任何内核模块)。注意:我想检测是否正在使用64位内核(或者实际上,CPU是否处于长模式),而不仅仅是是否存在支持64位的处理器(/proc/cpuinfo告诉我这一点,但没有告诉我是否正在使用64位功能。如果uname被编译为32位或如果使用setarchi686,内核将伪造一个32位处理器。 最佳答案 调用uname()函数并检查返回的machine字符串,对于64位Intel平台,它将是