Detecting 64bit vs. 32bit Linux
Robert Kern
robert.kern at gmail.com
Sat Jul 8 15:26:13 EDT 2006
Jim Segrave wrote:
> In article <44aea052$1 at usenet01.boi.hp.com>,
> dwelch91 <donald.welch at hp.com> wrote:
>> I need to detect whether the operating system I am running on (not the
>> Python version) is 64bit or 32bit. One requirement is that I need to
>> include support for non-Intel/AMD architectures.
>>
>> The 2 ways I have thought detecting 64bit are:
>>
>> 1. struct.calcsize("P") == 8
>> 2. '64' in os.uname()[4]
>>
>> I'm not convinced that either one of these is really adequate. Does
>> anybody have any other ideas on how to do this?
>
> Does sys.maxint give what you need?
>
> I think for most machines this will give you the answer you are
> looking for - either 2**31 -1 for a 32 bit version or 2**63-1 for a 64
> bit version. It's set up during the configure phase of building python
No. Some 64-bit systems (notably Win64) leave C longs as 32-bit. This is known
as the LLP64 data model.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Python-list
mailing list