$2^{64}=18446744073709551616$
当我们编写与操作系统有关的代码时,有时要判断一个进程是32位还是64位,这种情况下我们需要一些代码来实现这种功能,本文将针对不同操作系统下实现进程位数的判断的过程进行总结。
Linux下进程位数判断
使用file命令判断进程位数
当我们知道进程的PID后,我们可以使用file命令对进程的信息进行判断,例如:
1 | ~$ ps |
从上面的结果中,我们可以看到这个进程是64位进程。
ELF文件
在明确file命令的工作原理之前,我们先来看一下linux下可执行文件的格式,linux下的可执行文件是ELF格式,全称为可执行与可链接格式(Executable and Linkable Format),其实就是一种二进制可执行文件。ELF的header决定了该可执行文件采用32位还是64位的地址,所以我们通过ELF的相关信息即可判断可执行进程的位数。
C++判断进程位数代码
Windows下判断进程位数代码
参考文献
- 1. ↩