Yes, gcvt is legacy. But there is no one Linux distribution which has no gcvt in the world. Moreover gcvt present into MSVC, Intel C, mingw, etc.. It is true to have gcvt with right declaration. FD_ZERO(&read_fd); <== with -Wold-style-cast produced real bogus and suspicious warning which looks like bug GetTickCount64(); <== recommended part of WINAPI and must be avail via windows.h _BitScanReverse64 and _BitScanForward64 must be with "unsigned long *": unsigned char _BitScanForward64( unsigned long * Index, unsigned __int64 Mask ); due to ms specification as well... -- Cheers, \Denis
The Linux man page for gcvt says, "Marked as LEGACY in POSIX.1-2001. POSIX.1-2008 removes the specification of gcvt(), recommending the use of sprintf(3) instead (though snprintf(3) may be preferable)." Cygwin's stdlib.h is consistent with this. It guards the declaration of gcvt with #if __XSI_VISIBLE >= 4 && __POSIX_VISIBLE < 200112 If you really need to use gcvt, I think you probably have to #define _XOPEN_SOURCE to be 500. (I haven't tested this.) > 2. gcvt function in all standards has declaration like:char *gcvt(double number, > int ndigit, char *buf);but we have a warning about "int-conversion" and get core > dump on line:printf("buffer: %s", str); This is a consequence of the fact that gcvt hasn't been declared. I haven't looked at the rest of the warnings/errors in your message, but I suspect you can figure out the causes yourself by looking at the relevant headers and/or by looking at the result of preprocessing. You might also find the following helpful: https://cygwin.com/faq.html#faq.programming.64bitporting Ken -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple