I'm compiling code using gcc that comes from Visual C++ 2008. The code is using errno_t, but in some versions of gcc headers including <errno.h>
doesn't define the type. How do I detect if the type is defined? Is there a define that signals that the type was defined? In the case it isn't defined I'd like to provide the typedef to let the code compile correctly on all platforms.
Microsoft's errno_t
is redundant. errno
is defined by the ISO C standard to be a modifiable lvalue of type int
. If your code needs to store errno
values, then you should put them into an int
.
Do a global search and replace s/errno_t/int/
and you're done.
Edit: Also, you shouldn't be providing a typedef int errno_t
in your code, because all names that end with _t
are reserved.