Re: Opening stdin/stdout in binary mode on Windows
От | Tom Lane |
---|---|
Тема | Re: Opening stdin/stdout in binary mode on Windows |
Дата | |
Msg-id | 16907.1106764636@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Opening stdin/stdout in binary mode on Windows (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Opening stdin/stdout in binary mode on Windows
|
Список | pgsql-hackers-win32 |
I wrote: > Can anyone suggest a way that does work to do binary I/O > on stdout? What about reading from stdin? After a bit of googling I came up with the attached patch. I am not in a position to test it, however. Can anyone try it out? regards, tom lane *** src/bin/pg_dump/pg_backup_archiver.c~ Tue Jan 25 17:44:31 2005 --- src/bin/pg_dump/pg_backup_archiver.c Wed Jan 26 13:34:33 2005 *************** *** 29,34 **** --- 29,38 ---- #include <ctype.h> #include <unistd.h> + #ifdef WIN32 + #include <io.h> + #endif + #include "pqexpbuffer.h" #include "libpq/libpq-fs.h" *************** *** 1709,1714 **** --- 1713,1731 ---- AH->gzOut = 0; AH->OF = stdout; + /* + * On Windows, we need to use binary mode to read/write non-text archive + * formats. Force stdin/stdout into binary mode in case that is what + * we are using. + */ + #ifdef WIN32 + if (fmt != archNull) + { + setmode(fileno(stdout), O_BINARY); + setmode(fileno(stdin), O_BINARY); + } + #endif + #if 0 write_msg(modulename, "archive format is %d\n", fmt); #endif
В списке pgsql-hackers-win32 по дате отправления: