|
|
@ -1089,11 +1089,12 @@ void AllocateFileRange(FILE *file, unsigned int offset, unsigned int length) {
|
|
|
|
fcntl(fileno(file), F_PREALLOCATE, &fst);
|
|
|
|
fcntl(fileno(file), F_PREALLOCATE, &fst);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ftruncate(fileno(file), fst.fst_length);
|
|
|
|
ftruncate(fileno(file), fst.fst_length);
|
|
|
|
#elif defined(__linux__)
|
|
|
|
#else
|
|
|
|
|
|
|
|
#if defined(__linux__)
|
|
|
|
// Version using posix_fallocate
|
|
|
|
// Version using posix_fallocate
|
|
|
|
off_t nEndPos = (off_t)offset + length;
|
|
|
|
off_t nEndPos = (off_t)offset + length;
|
|
|
|
posix_fallocate(fileno(file), 0, nEndPos);
|
|
|
|
if (0 == posix_fallocate(fileno(file), 0, nEndPos)) return;
|
|
|
|
#else
|
|
|
|
#endif
|
|
|
|
// Fallback version
|
|
|
|
// Fallback version
|
|
|
|
// TODO: just write one byte per block
|
|
|
|
// TODO: just write one byte per block
|
|
|
|
static const char buf[65536] = {};
|
|
|
|
static const char buf[65536] = {};
|
|
|
|