Question

Le drapeau O_LARGEFILE nécessaire si tout ce que je veux faire est d'écrire un fichier volumineux (O_WRONLY) ou d'y ajouter un gros fichier (O_APPEND | O_WRONLY)?

A partir d'un fil que je lis intitulé « Impossible écriture> fichier d'index 2gb » sur la liste de diffusion CLucene-dev, il semble que O_LARGEFILE pourrait être nécessaire pour écrire des fichiers volumineux, mais les participants à cette discussion utilisent O_RDWR, pas O_WRONLY, donc je ne suis pas sûr.

Était-ce utile?

La solution

O_LARGEFILE ne doit jamais être utilisé directement par les applications. Il est à utiliser en interne par la version 64 bits offset compatible open dans libc quand il fait le syscall au noyau (Linux, ou peut-être un autre noyau avec ce décalage de 64-bits en mode-est-un-deuxième classe non-sens citoyen). Assurez-vous de toujours inclure -D_FILE_OFFSET_BITS=64 dans votre CFLAGS et vous ne serez jamais à vous soucier de quoi que ce soit.

Autres conseils

IIRC si vous faites

#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64

avant tous les autres que vous ne comprend pas besoin de passer ce drapeau.

voir en outre

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top