IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Lire des fichier > 4G


Sujet :

C++

  1. #1
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut Lire des fichier > 4G
    Bonjour à tous,

    J'utilise actuellement les commande suivante pour me déplacer et lire un fichier de datas binaire:
    f=fopen("fichier","rb");
    fseek(....)
    fread(...)
    Etc..
    Mais ces instruction sont visiblement limité à 2Go. Le fssek() par example attend un type long comme argument.
    Quels types de library ou instruction dois-je utiliser pour lire des fichiers > à 4G sachant que j'ecrit en standart portable Linux et windows

    Merci d'avance

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Bonjour à tous,

    J'utilise actuellement les commande suivante pour me déplacer et lire un fichier de datas binaire:
    f=fopen("fichier","rb");
    fseek(....)
    fread(...)
    Etc..
    Mais ces instruction sont visiblement limité à 2Go. Le fssek() par example attend un type long comme argument.
    Quels types de library ou instruction dois-je utiliser pour lire des fichiers > à 4G sachant que j'ecrit en standart portable Linux et windows

    Merci d'avance
    Bonjour,
    se ne sont pas ces instructions qui sont limité mais la memoire allouable à un processus!!!! qui est limité as 2Go sous windows 32 bits (3Go avec une bidouille dans le boot.ini)... Il me semble que c'est pareil sous linux 32 bits

  3. #3
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Peut-etre aussi, mais si tu fais un fseek() qui attend un long, c'est difficile de se déplacer de plus 4GO puis que c'est la limite d'un long non signé

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Pour Posix cherche avec LARGEFILE_SOURCE.

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Peut-etre aussi, mais si tu fais un fseek() qui attend un long, c'est difficile de se déplacer de plus 4GO puis que c'est la limite d'un long non signé
    http://www.cplusplus.com/reference/c...dio/fseek.html
    ce n'est pas plustôt un long int ?

    [edit]
    je viens de comprendre ta question... dsl

  6. #6
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    "long int " ou "int" c'est pareil non?

  7. #7
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Pour Posix cherche avec LARGEFILE_SOURCE.
    Les premiers résultats sous google ne sont pas très parlant

    Tu veux parler des versions 64 bits des fonctions : fopen64 & co ?

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    "long int " ou "int" c'est pareil non?
    je ne pense pas...

  9. #9
    Membre confirmé
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Par défaut
    Sous windows les 2 font 4 octets, c'est peut être ça qu'il essayait de dire?

  10. #10
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par gege2061 Voir le message
    Les premiers résultats sous google ne sont pas très parlant
    Bon, essayons alors une référence plus directe:
    http://en.wikipedia.org/wiki/Large_file_support

  11. #11
    Membre expérimenté

    Inscrit en
    Mai 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 132
    Par défaut fseeko sous Linux
    Salut, je travalle sous Linux (Slackware 12). Ici il existe fseeko :
    FSEEKO(3) Linux Programmer's Manual FSEEKO(3)

    NAME
    fseeko, ftello - seek to or report file position

    SYNOPSIS
    #include <stdio.h>

    int fseeko(FILE *stream, off_t offset, int whence);

    off_t ftello(FILE *stream);

    DESCRIPTION
    The fseeko() and ftello() functions are identical to fseek(3) and
    ftell(3) (see fseek(3)), respectively, except that the offset argument
    of fseeko() and the return value of ftello() is of type off_t instead
    of long.

    On many architectures both off_t and long are 32-bit types, but compi-
    lation with
    #define _FILE_OFFSET_BITS 64
    will turn off_t into a 64-bit type.

    RETURN VALUE
    On successful completion, fseeko() returns 0, while ftello() returns
    the current offset. Otherwise, -1 is returned and errno is set to
    indicate the error.

    ERRORS
    See the ERRORS in fseek(3).

    CONFORMING TO
    SUSv2, POSIX.1-2001.

    NOTES
    These functions are found on System V-like systems. They are not
    present in libc4, libc5, glibc 2.0 but are available since glibc 2.1.

    SEE ALSO
    fseek(3)

  12. #12
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Merci de vos réponses éclairées.
    Je vais étudier tout ca

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    "long int " ou "int" c'est pareil non?
    non.
    int, c'est en fait un signed int.
    long c'est en fait un signed long int.

  14. #14
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Enfin, les 2 font 32bits signet ou pas

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Enfin, les 2 font 32bits signet ou pas
    non !!!

    long est bien sur 32 bits, int dépend du systeme. sur un Vista 64, ton int va faire 64 bits !

  16. #16
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    A oui !
    C'est bien foutu ca encore !

  17. #17
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Citation Envoyé par toxcct Voir le message
    long est bien sur 32 bits, int dépend du systeme. sur un Vista 64, ton int va faire 64 bits !
    Perdu.
    1. Un long est toujours au moins aussi grand qu'un int.
    2. C'est le long qui a tendance à faire 64 bits sur certaines plate-formes 64 bits, alors que le int reste plus souvent à 32 bits que le long
    3. int et long font toujours 32bits sous Win64.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    A là je prefere!

  19. #19
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    A là je prefere!
    dans tout les cas, comme le standard ne définit pas les tailles pour ces deux types, il faut utiliser sizeof() pour s'en assurer

  20. #20
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Merci pour tout, mais apres reflexion, cela m'aide pas beaucoups dans la lecture de mes fichier > 4GO sous windows avec BDS6

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/11/2007, 12h38
  2. Lire des fichiers iso sous linux
    Par wodel dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 28/11/2005, 10h17
  3. [Audio]Lire des fichiers sons
    Par Ender dans le forum Multimédia
    Réponses: 6
    Dernier message: 05/10/2005, 01h50
  4. Lire des fichiers .mpc
    Par Thrystan dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 11/12/2004, 13h15
  5. [ZIP]besoin de lire des fichiers avec l'extension tar.gz
    Par mathieublanc13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/05/2004, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo