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: | Raw Message | Whole Thread | 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 |