Re: HAVE_FSEEKO for WIN32
От | Bruce Momjian |
---|---|
Тема | Re: HAVE_FSEEKO for WIN32 |
Дата | |
Msg-id | 200812222236.mBMMage03114@momjian.us обсуждение исходный текст |
Ответ на | HAVE_FSEEKO for WIN32 (Andrew Dunstan <andrew@dunslane.net>) |
Список | pgsql-hackers |
Andrew Dunstan wrote: > > Cleaning up the parallel restore patch I came across a question I might > have asked before, but one which in any case I worked around: > > Why do we carefully define fseeko() for WIN32 but then not define > HAVE_FSEEKO, which makes doing the former pretty much pointless? Well, we are doing something odd here but it might not be what you think. We currently use fseeko() only in pg_dump. We define C code in /port for some Unix platforms that don't support fseeko. For platforms that don't support fseeko and don't have /port support for it we just use fseek() in port.h: #ifndef HAVE_FSEEKO#define fseeko(a, b, c) fseek(a, b, c)#define ftello(a) ftell(a)#endif but then for Win32 we #undef fseeko and redefine it: #ifdef WIN32#define pgoff_t __int64#undef fseeko#undef ftello#ifdef WIN32_ONLY_COMPILER#define fseeko(stream, offset, origin)_fseeki64(stream, offset, origin)#define ftello(stream) _ftelli64(stream)#else#define fseeko(stream, offset, origin)fseeko64(stream, offset, origin)#define ftello(stream) ftello64(stream)#endif#else#define pgoff_t off_t#endif Clearly this code should be moved into port.h, I think. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
В списке pgsql-hackers по дате отправления: