3 votes

Prise en charge des gros fichiers

Quelqu'un pourrait-il s'il vous plaît expliquer ce que fait exactement cette option O_LARGEFILE pour prendre en charge l'ouverture de fichiers volumineux. Et peut-il y avoir des effets secondaires de la compilation avec le drapeau -D_FILE_OFFSET_BITS=64. En d'autres termes, lorsque compilé avec cette option, devons-nous nous assurer de quelque chose.

1voto

Ricardo Cárdenes Points 4636

De man 2 open:

   O_LARGEFILE
          (LFS)  Autorise l'ouverture de fichiers dont les tailles ne peuvent pas être représentées dans un off_t (mais peuvent être représentées dans un off64_t). La macro _LARGE‐
          FILE64_SOURCE doit être définie pour obtenir cette définition. Définir la macro de test de fonction _FILE_OFFSET_BITS à 64 (plutôt
          que d'utiliser O_LARGEFILE) est la méthode préférée pour accéder aux fichiers de grande taille sur des systèmes 32 bits (voir les macros de test de fonction(7)).

Edit: (c.-à-d. RTM :P)

1voto

jim mcnamara Points 8622

Utilisez _FILE_OFFSET_BITS de préférence à O_LARGEFILE. Ils sont utilisés sur les systèmes 32 bits pour permettre l'ouverture de fichiers si grands qu'ils dépassent la plage d'un pointeur de fichier 32 bits.

Non, vous n'avez pas à faire quelque chose de spécial. Si vous êtes sur une version Linux 64 bits, cela ne fait aucune différence de toute façon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X