One can't just #undef errno on windows because it is defined as follows:


 #if defined(_MT) || defined(_DLL)
 extern int * __cdecl _errno(void);
 #define errno (*_errno())
 #else /* ndef _MT && ndef _DLL */
 extern int errno;
 #endif /* _MT || _DLL */

So when building a dll or a multithreaded application it is not a plain 
variable but call to the _errno() and after #undef errno one will lose 
errno completely. For the same reason it is impossible to use something
like 'errno=0;'.

Mikhail Terekhov


Tom Lane wrote:
> 
> Bruce Momjian <[EMAIL PROTECTED]> writes:
> > Any idea where we are on this?
> 
> I'm planning to #undef errno around the three routines that need to get
> at plain errno.  Not done yet though...
> 
>                         regards, tom lane
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to