why zip64_limit defined as 1<<31 -1?

Ian Kelly ian.g.kelly at gmail.com
Thu Jan 29 15:26:14 EST 2015


On Thu, Jan 29, 2015 at 12:12 PM, jesse <chat2jesse at gmail.com> wrote:
>
> On Jan 29, 2015 9:27 AM, "Ian Kelly" <ian.g.kelly at gmail.com> wrote:
>>
>> On Wed, Jan 28, 2015 at 2:36 PM, Chris Angelico <rosuav at gmail.com> wrote:
>> > On Thu, Jan 29, 2015 at 5:53 AM, jesse <chat2jesse at gmail.com> wrote:
>> >> should not it be 1<<32 -1(4g)?
>> >>
>> >> normal zip archive format should be able to support 4g file.
>> >>
>> >> thanks
>> >
>> > 1<<31-1 is the limit for a signed 32-bit integer. You'd have to look
>> > into the details of the zip file format to see whether that's the
>> > official limit or not; it might simply be that some (un)archivers have
>> > problems with >2GB files, even if the official stance is that it's
>> > unsigned.
>>
>> The bug in which zip64 support was added indicates that the value was
>> indeed chosen as the limit of a signed 32-bit integer:
>>
>> http://bugs.python.org/issue1446489
>
> ok,  then why signed 32-bit integer instead of unsigned 32 integer? any
> technical limitation reason? the chosen 2G boundary does not conform to zip
> standard specification.

I don't know specifically, but as Chris said it may be to ensure
compatibility with unzip programs that use signed 32-bit integers.



More information about the Python-list mailing list