| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | pgsql-hackers-win32(at)postgresql(dot)org |
| Subject: | Re: Opening stdin/stdout in binary mode on Windows |
| Date: | 2005-01-26 18:37:16 |
| Message-ID: | 16907.1106764636@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Fabio Esposito | 2005-01-26 19:51:57 | Re: PostgreSQL 8.0 for RH AS |
| Previous Message | Alex Turner | 2005-01-26 18:29:53 | Re: text field constraint advice |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Merlin Moncure | 2005-01-26 18:41:28 | Re: Opening stdin/stdout in binary mode on Windows |
| Previous Message | Tom Lane | 2005-01-25 22:51:47 | Opening stdin/stdout in binary mode on Windows |