O_LARGEFILE необходим только для записи большого файла?

O_LARGEFILE флагу было нужно, если все, что я хочу сделать, записать большой файл (O_WRONLY) или добавьте в большой файл (O_APPEND | O_WRONLY)?

От потока, который я считал названный, "Не может записать> индексный файл на 2 ГБ" в списке рассылки CLucene-dev, это появляется это O_LARGEFILE мог бы быть необходим для записи больших файлов, но участники того обсуждения используют O_RDWR, нет O_WRONLY, таким образом, я не уверен.

10
задан Vadim Kotov 26 June 2018 в 10:18
поделиться

2 ответа

O_LARGEFILE никогда не должен использоваться приложениями напрямую. Он должен использоваться внутри совместимой с 64-битным смещением версии open в libc, когда он выполняет системный вызов ядру (Linux или, возможно, другому ядру с этим 64-битным смещенным режимом). ерунда гражданина второго сорта). Просто убедитесь, что вы всегда включаете -D_FILE_OFFSET_BITS = 64 в ваш CFLAGS , и вам никогда не придется ни о чем беспокоиться.

13
ответ дан 3 December 2019 в 16:51
поделиться

IIRC, если вы сделаете

#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64

перед всеми другими включениями, вам не нужно передавать этот флаг.

дополнительно см.

11
ответ дан 3 December 2019 в 16:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: