O_LARGEFILE
флагу было нужно, если все, что я хочу сделать, записать большой файл (O_WRONLY
) или добавьте в большой файл (O_APPEND | O_WRONLY
)?
От потока, который я считал названный, "Не может записать> индексный файл на 2 ГБ" в списке рассылки CLucene-dev, это появляется это O_LARGEFILE
мог бы быть необходим для записи больших файлов, но участники того обсуждения используют O_RDWR
, нет O_WRONLY
, таким образом, я не уверен.
O_LARGEFILE
никогда не должен использоваться приложениями напрямую. Он должен использоваться внутри совместимой с 64-битным смещением версии open
в libc, когда он выполняет системный вызов ядру (Linux или, возможно, другому ядру с этим 64-битным смещенным режимом). ерунда гражданина второго сорта). Просто убедитесь, что вы всегда включаете -D_FILE_OFFSET_BITS = 64
в ваш CFLAGS
, и вам никогда не придется ни о чем беспокоиться.
IIRC, если вы сделаете
#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64
перед всеми другими включениями, вам не нужно передавать этот флаг.