Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/10/2012, à 10:52

Erich

Adresser un fichier de taille > 2Go

Bonjour
Si en c standard, je réitère suffisament la commande :
fwrite(&x,sizeof(str_x),1,f);
ou x est une structure du type str_x, et f un pointeur sur FILE, ça bugge a partir du moment ou f, ouvert part fopen, atteint a peu près 2Go soit la taille d'un int (4 octets). Comment contourner ça ?

Merci

Hors ligne

#2 Le 29/10/2012, à 10:08

claudius01

Re : Adresser un fichier de taille > 2Go

Bonjour,

cf. http://stackoverflow.com/questions/7307 … write-in-c
Sinon et sauf erreur de ma part, la solution radicale est de booter Linux en 64 bits (si cela est possible naturellement)


Cordialement, A+
--
Claudius

Hors ligne

#3 Le 29/10/2012, à 13:46

credenhill

Re : Adresser un fichier de taille > 2Go

hello
man -s 2 open
...
O_LARGEFILE
       (LFS)  Allow  files  whose  sizes  cannot  be  represented  in  an  off_t (but can be represented in an off64_t) to be opened.  The _LARGE‐ FILE64_SOURCE macro must be defined in order to obtain this definition.  Setting the _FILE_OFFSET_BITS feature test  macro  to  64  (rather than   using  O_LARGEFILE)  is  the  preferred  method  of  obtaining  method  of  accessing  large  files  on  32-bit  systems  (see  fea‐ ture_test_macros(7)).

Hors ligne

#4 Le 30/10/2012, à 08:45

Erich

Re : Adresser un fichier de taille > 2Go

Bonjour, et merci de vos réponses

si j'en réfère au lien ci-dessus, il suffirait donc d'ajouter :
#define _FILE_OFFSET_BITS  64
en en-tête, avant d'inclure le stdio.h.
Je n'avais pas pensé a faire un man sur open, j'avais essayé sur fopen mais sans succès.

Je vais en tous cas essayer ça, merci encore

Hors ligne