Pregunta

¿Es la bandera O_LARGEFILE necesaria si todo lo que quiero hacer es escribir un archivo grande (O_WRONLY) o añadir a un archivo de gran tamaño (O_APPEND | O_WRONLY)?

A partir de un hilo que he leído titulado " No se puede escritura> 2gb archivo de índice " en la lista de correo CLucene-dev, parece que podría ser necesaria O_LARGEFILE para escribir archivos de gran tamaño, pero los participantes en la discusión que están utilizando O_RDWR, no O_WRONLY, así que no estoy seguro.

¿Fue útil?

Solución

O_LARGEFILE nunca debe ser utilizada directamente por las aplicaciones. Es para ser utilizado internamente por versión compatible con offset de 64 bits el de open en libc cuando se hace la llamada al sistema al kernel (Linux, o posiblemente otro kernel con este 64 bits en modo de desplazamiento-es-un-segundo sin sentido clase ciudadano). Sólo asegúrese de incluir siempre en su -D_FILE_OFFSET_BITS=64 CFLAGS y usted nunca tendrá que preocuparse de nada.

Otros consejos

IIRC si lo hace

#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64

antes de que el resto incluye no necesita pasar esta bandera.

adicionalmente ver

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top