From: Frank Li Date: Wed, 19 Aug 2009 15:52:39 GMT Subject: [PATCH 04/12] mingw.c: Use the O_BINARY flag to open files Message-ID: <1250697167-5536-4-git-send-email-lznuaa@gmail.com> In-Reply-To: <1250697167-5536-3-git-send-email-lznuaa@gmail.com> On Windows, non-text files must be opened using the O_BINARY flag. MinGW does this for us automatically, but Microsoft Visual C++ does not. Signed-off-by: Frank Li --- compat/mingw.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compat/mingw.c b/compat/mingw.c index 75c74b1..d5fa0ed 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -132,7 +132,7 @@ int mingw_open (const char *filename, int oflags, ...) if (!strcmp(filename, "/dev/null")) filename = "nul"; - fd = open(filename, oflags, mode); + fd = open(filename, oflags | O_BINARY, mode); if (fd < 0 && (oflags & O_CREAT) && errno == EACCES) { DWORD attrs = GetFileAttributes(filename); @@ -278,7 +278,7 @@ int mkstemp(char *template) char *filename = mktemp(template); if (filename == NULL) return -1; - return open(filename, O_RDWR | O_CREAT, 0600); + return open(filename, O_RDWR | O_CREAT | O_BINARY, 0600); } int gettimeofday(struct timeval *tv, void *tz) -- 1.6.4.msysgit.0