sys.maxint in Python 2.6.1 (amd64) on Windows XP x64

L

Lin

Hi,

I installed the amd64 version of Python 2.6.1 on my Windows XP x64
system. I was expecting sys.maxint to be 9223372036854775807 (or 2 ^63
-1), but instead I got 2147483647 (i.e., 2^31-1) just like what I got
from a 32-bit version of Python. Is this by design or does it indicate
a bug or an installation problem? Thank you very much!


--lin
 
L

Lin

This is by design. In their infinitive wisdom Microsoft has decided to
make the 'long' C type always a 32 bit signed integer - even on 64bit
systems. On most Unix systems a long is at least 32 bit but usually
sizeof(ptr).

Ah, this makes sense. Thanks...... The main reason I'm trying 64-bit
Python is that I want to write files bigger than 4GB. This should work
on Windows x64, right? (i.e., are the pointers bona fide 64 bit?)

-lin
 
T

Tim Roberts

Lin said:
Ah, this makes sense. Thanks...... The main reason I'm trying 64-bit
Python is that I want to write files bigger than 4GB. This should work
on Windows x64, right? (i.e., are the pointers bona fide 64 bit?)

Those two questions are not related. Win32 (NTFS) has always been able to
create files larger than 4GB, and the file APIs that deal with file
positions and file sizes can all handle 64-bit values.

Pointers on Win32 are 32 bits, but that doesn't affect files. If you want
to map that large file into memory, you have to do it a gigabyte at a time,
but if you're using ReadFile and WriteFile, it's not a problem.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top