On Feb 14 16:22, Stephan Mueller wrote:
> Andrey Repin wrote:
> 
> > http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?pf=true
> > 
> >> The maximum total environment variable size for all variables, which
> >> includes variable names and the equal sign, is 65,536KB.
> 
> The actual limit, on old OSes (such as Windows XP) is 64KB or 65536 bytes.  
> This text appears to contain a typo; likely someone decided to change from 
> one representation to the other, and forgot to change the units when they 
> changed the number.  Newer OSes have lifted the 64KB limitation; I forget 
> exactly when. 
> 
> > http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx
> > (And consequently,
> > http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
> > )
> 
> These docs are the documentation for the CreateProcess API.  I'm guessing the 
> relevant text here is:
> 
>       The ANSI version of this function, CreateProcessA fails if the total 
> size of the environment block for the process exceeds 32,767 characters.
> 
> The limit described here is independent of the one in the XP documentation.  
> The typical behaviour of a large number of Windows FooA APIs is to widen 
> their argument strings from ANSI to UTF-16, and then call the FooW API to do 
> the actual work.  The 32K limit here is likely related to the size of the 
> buffer used for the temporary wide copy of the argument.
> 
> > I don't know, how it is applicable to Cygwin.
> 
> Likewise. 

Cygwin is using fooW functions, so we should be on the safe side.
Except that a big Windows environment tends to move the usual
start addresses of the stack from the usual 0x30000 to something
else.  This can unfortunately break fork if the Windows environment
is >64K and the Windows environment changed in the forking process.


Corinna


-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpmVcEEYIFSi.pgp
Description: PGP signature

Reply via email to