Hi, >> is cygwin's __STRICT_ANSI__ and stdio.h behavior not so compatible to glibc's? > > Cygwin is using newlib, newlib is BSD based. We introduced the > compatibility checking macros from FreeBSD lately. i roughly checked FreeBSD include/stdio.h and sys/sys/cdefs.h. https://github.com/freebsd/freebsd/blob/master/include/stdio.h https://github.com/freebsd/freebsd/blob/master/sys/sys/cdefs.h it looks very different to newlib's. FreeBSD has visibility for popen()/pclose() if __POSIX_VISIBLE >= 199209, it looks no checking about __STRICT_ANSI__ in their cdefs.h. only one thing i worried about is _ANSI_SOURCE in their cdefs.h, (b/c i don't understand where _ANSI_SOURCE comes from...) but it looks _POSIX_C_SOURCE wins anyway. for ease to see, i'd attach simplified their cdefs.h for their visibility handling. anyway, IIUC, newlib's behavior in regard this point looks not equivalent to FreeBSD's... Peace,