On Sun, Jul 17, 2011 at 9:34 PM, Stefan Weil <w...@mail.berlios.de> wrote: > Am 17.07.2011 11:03, schrieb Blue Swirl: >> >> On Fri, Jul 15, 2011 at 11:42 PM, Andreas Färber <andreas.faer...@web.de> >> wrote: >>> >>> Am 15.07.2011 um 21:38 schrieb Stefan Weil: >>>> >>>> Commit 953ffe0f935f40c0d6061d69e76e0339393b54f8 >>>> introduced FMT_pid which is wrong for w32 and w64 getpid(): >>>> those getpid() implementations always return an int value. >> >> This is not in line with Posix: >> >> http://pubs.opengroup.org/onlinepubs/9699919799/functions/getpid.html#tag_16_243 > > Maybe I should have added that getpid() is a function in a vendor specific > API. > Microsoft does not claim that getpid() is in line with Posix > (they say it is a deprecated POSIX function, see > http://msdn.microsoft.com/en-us/library/ms235372%28v=vs.80%29.aspx). > > Visual Studio uses this declaration: > _CRT_NONSTDC_DEPRECATE(_getpid) _CRTIMP int __cdecl getpid(void); > > Mingw32 tries to be more POSIX like and uses (with pid_t = int) this > declaration: > _CRTIMP pid_t __cdecl __MINGW_NOTHROW getpid (void); > > Mingw-w64 is closer to the VS declaration: > int __cdecl getpid(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005; > > The replacement for getpid() is _getpid(). It also has a wrong > declaration in mingw32. A patch which simply replaces getpid by > _getpid is on my todo list, but not urgent, because the current > code works when my patch was applied.
Since for example GetProcessById uses int, it looks like pid_t is instead wrong.