Domanda

E 'la bandiera O_LARGEFILE necessaria se tutto quello che voglio fare è scrivere un file di grandi dimensioni (O_WRONLY) o aggiungere a un file di grandi dimensioni (O_APPEND | O_WRONLY)?

Da un filo che ho letto dal titolo " Impossibile scrittura> 2GB file indice " sulla mailing list CLucene-dev, sembra che O_LARGEFILE potrebbe essere necessario per scrivere i file di grandi dimensioni, ma i partecipanti a quella discussione si utilizza O_RDWR, non O_WRONLY, quindi non sono sicuro.

È stato utile?

Soluzione

O_LARGEFILE non dovrebbe mai essere utilizzato direttamente dalle applicazioni. E 'per essere utilizzato internamente da compatibile con la versione a 64 bit-compensare la di open in libc quando fa la chiamata di sistema al kernel (Linux, o forse un altro kernel con questo 64-bit-offset-mode-is-a-di seconda nonsense classe cittadino). Basta fare in modo di includere sempre -D_FILE_OFFSET_BITS=64 nel vostro CFLAGS e non dovrete mai preoccuparvi di nulla.

Altri suggerimenti

IIRC se si fa

#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64

prima di tutti gli altri include non c'è bisogno di passare questo flag.

inoltre vedere

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top