Windows: fix missing O_BINARY
This commit is contained in:
parent
a783ab17dc
commit
a95dcbd4b0
@ -23,7 +23,7 @@
|
|||||||
#include "safesysstat.h"
|
#include "safesysstat.h"
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#if 1 || defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
#define USING_STD_REGEX
|
#define USING_STD_REGEX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
|
#define O_BINARY 0
|
||||||
#else
|
#else
|
||||||
struct iovec {
|
struct iovec {
|
||||||
void *iov_base;
|
void *iov_base;
|
||||||
@ -722,7 +723,7 @@ bool CirCache::create(off_t maxsize, int flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((m_d->m_fd = ::open(m_d->datafn(m_dir).c_str(),
|
if ((m_d->m_fd = ::open(m_d->datafn(m_dir).c_str(),
|
||||||
O_CREAT | O_RDWR | O_TRUNC, 0666)) < 0) {
|
O_CREAT|O_RDWR|O_TRUNC|O_BINARY, 0666)) < 0) {
|
||||||
m_d->m_reason << "CirCache::create: open/creat(" <<
|
m_d->m_reason << "CirCache::create: open/creat(" <<
|
||||||
m_d->datafn(m_dir) << ") failed " << "errno " << errno;
|
m_d->datafn(m_dir) << ") failed " << "errno " << errno;
|
||||||
return false;
|
return false;
|
||||||
@ -754,7 +755,8 @@ bool CirCache::open(OpMode mode)
|
|||||||
::close(m_d->m_fd);
|
::close(m_d->m_fd);
|
||||||
|
|
||||||
if ((m_d->m_fd = ::open(m_d->datafn(m_dir).c_str(),
|
if ((m_d->m_fd = ::open(m_d->datafn(m_dir).c_str(),
|
||||||
mode == CC_OPREAD ? O_RDONLY : O_RDWR)) < 0) {
|
mode == CC_OPREAD ?
|
||||||
|
O_RDONLY|O_BINARY : O_RDWR|O_BINARY)) < 0) {
|
||||||
m_d->m_reason << "CirCache::open: open(" << m_d->datafn(m_dir) <<
|
m_d->m_reason << "CirCache::open: open(" << m_d->datafn(m_dir) <<
|
||||||
") failed " << "errno " << errno;
|
") failed " << "errno " << errno;
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -22,7 +22,9 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "safesysstat.h"
|
#include "safesysstat.h"
|
||||||
#include "safeunistd.h"
|
#include "safeunistd.h"
|
||||||
|
#ifndef _WIN32
|
||||||
|
#define O_BINARY 0
|
||||||
|
#endif
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "readfile.h"
|
#include "readfile.h"
|
||||||
@ -92,7 +94,7 @@ bool file_scan(const string &fn, FileScanDo* doer, off_t startoffs,
|
|||||||
|
|
||||||
// If we have a file name, open it, else use stdin.
|
// If we have a file name, open it, else use stdin.
|
||||||
if (!fn.empty()) {
|
if (!fn.empty()) {
|
||||||
fd = open(fn.c_str(), O_RDONLY);
|
fd = open(fn.c_str(), O_RDONLY|O_BINARY);
|
||||||
if (fd < 0 || fstat(fd, &st) < 0) {
|
if (fd < 0 || fstat(fd, &st) < 0) {
|
||||||
catstrerror(reason, "open/stat", errno);
|
catstrerror(reason, "open/stat", errno);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user