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

POSIX C Discussion :

Ouverture de plusieurs fichiers en même temps ?


Sujet :

POSIX C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    On peut savoir d'où tu sors le nombre 255? montre ton code!

  2. #2
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Si tu parles d'un errno, tu peux directement afficher sa description avec perror.
    Si tu parles d'un retour de fonction, il faut regarder son mode d'emploi.
    Si tu parles d'un retour de process, il faut regarder son mode d'emploi.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut
    c'est un retour de fonction, desole
    je lui demandais de me retourner -1, mais il m'affichait 255, du coup, j'ai pas bien saisi, en changeant mon code d'erreur, j'ai compris, mon programme ne sort pas avec des exceptions, tout est detruit correctement

    mais, ca m'intrigue quand meme, les fichiers que j'essaie d'ouvrir sont tous integres
    mais il arrete l'ouverture toujours au 300' fichier
    a vrai dire, si je les ouvre avec fopen, ca marche nickel, mais je dois les ouvrir avec des routines speciales (c'est un format d'image specail et les images sont assez volumineuses)

    est ce que quelqu'un pourrais me dire ce qui peut empecher l'ouverture d'un fichier?

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Avant d'ouvrir un fichier, fermez vous le(s) précédant(s) ?

    je lui demandais de me retourner -1, mais il m'affichait 255, du coup, j'ai pas bien saisi, en changeant mon code d'erreur, j'ai compris, mon programme ne sort pas avec des exceptions, tout est detruit correctement
    Je ne saisis pas tout, mais un -1 qui se transforme en 255, c'est la valeur -1 qu'on affiche comme un unsigned char.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut
    merci pour l'explication mais j'ai compris pour le 255

    pour les fichiers, justement, je dois les laisser tous ouverts
    c le but, car, sinon je deverais faire plusieurs ouvertures fermetures, et ca couterais enormement en temps de calcul

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Le problème, c'est qu'il y a une limite au nombre de fichiers pouvant être ouverts simultanément...
    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.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par MPEG4 Voir le message
    merci pour l'explication mais j'ai compris pour le 255

    pour les fichiers, justement, je dois les laisser tous ouverts
    c le but, car, sinon je deverais faire plusieurs ouvertures fermetures, et ca couterais enormement en temps de calcul
    va bien falloir que tu les fermes un jour ou l'autre, non ??

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par MPEG4 Voir le message
    voila, j'ai un probleme a l'execution d'un programme
    ou je lui demande d'ouvrir 360 fichiers
    A mon avis, problème de conception... On peut voir la spec ?

    Citation Envoyé par spec
    je dois calculer l'intersection entre chaque deux image de mon dossier, et donc je dois ouvrir pour chaque image toutes les autres images ( je cree un systemem a resoudre pour des fins bien particulieres que j'expliquerais plus tard si ca vous interesse)
    comme optimisation, une image prise en mode maitre (si on peut appeler ca comme ca) ne sera plus re-ouverte
    donc au lieux de faire n*n ouverture
    on fera (n-1)(n-2) ouvertures/fermeture

    mais ca reste quand meme enorme de reouvrir a chaque fois les fichiers, d'autant plus que je dois travailler avec bcp d'images a la fois

    si vous avez une methode optimisee pour l'ouverture de ces fichiers la, je serais vraiment prenant
    merci d'avance

  9. #9
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Pour connaitre les limites de ton environnement tu as la commande ulimit. Il existe un équivalent en c.

    Tu pourras éventuellement augmenter le nombre de fichiers ouverts possibles.

    Au delà de cette limite, je ne sais pas ce qu'impose l'os.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut
    si j'ai opte pour l'ouverture de tous les fichiers en meme temps, c'est bien parce que mon tuteur le veut ainsi, car, ca le derange de faire des ouvertures/fermetures

    mais lui meme voulait que je travaille avec le mmap, sauf que si j'utilise cette facons la, cela voudra dire, que je deverais recoder toute une bibliotheque pour lire les images ".fits" ce qui est assez complexe, alors, que moi je dois d'avantage me concentrer sur le traitement du fond du ciel!!

    les bibliotheques sont la:
    une, simple est bien documentee, mais helas, pas adaptee a mon probleme et l'autre bien optimisee, basee sur mmap, mais pas documentee
    voila, pourquoi je tergeverse a reecrire quelque chose deja existant , alors que j'ai beaucoup de travail a cote
    il n 'y a pas de conception, ni d'architecture,
    ce que je dois faire est comme suit:
    je dois calculer la position de chaque sous image dans l'image globale
    pour chaque couple, calculer l'intersection et en deduire des parametre
    constituer un systeme d'equations lineaires
    A*X=B
    et ainsi soustraire chaque Xi de l'image i, afin de pouvoir rassembler les images en un seul morceau, en éliminant le maximum de discontinuité

    voila, si vous avez des idees, tout est bienvenu sur ce poste

    je suis toujours en quete de la meilleure facon a gerer les fichiers, car c'est le vrai probleme, le reste etant des modeles mathematiques ou je m'en sors pas mal

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par MPEG4 Voir le message
    il n 'y a pas de conception, ni d'architecture,
    ce que je dois faire est comme suit:
    déjà là, gros problème....

    AVANT de se lancer dans du code et des solutions, il FAUT s"asseoir et réfléchir au problème et à l'algo.


    Citation Envoyé par MPEG4 Voir le message
    je dois calculer la position de chaque sous image dans l'image globale
    pour chaque couple, calculer l'intersection et en deduire des parametre
    constituer un systeme d'equations lineaires
    et ainsi soustraire chaque Xi de l'image i, afin de pouvoir rassembler les images en un seul morceau, en éliminant le maximum de discontinuité
    Exposé peu clair -> problème pas vraiment compris -> solution pas adaptée.

    • Tu as une grosse image.
    • Tu as plusieurs petites images


    jusque là ça va.

    1. Maintenant quel est le lien entre les petites et la grosse ?
    2. pourquoi avoir besoin de calculer l'intersection (entre quoi et quoi ??) ?
    3. pourquoi soustraire ?
    4. quel est le but final ?

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut oublions tout.
    Bonjour,

    J'ai regardé la librarie CFITSIO. Pour ouvrir ces images elle à ses propres primitives auxquelles on donne le nom du fichier (et non un stream retourné par fopen).

    Ces primitives sont de la forme:
    int fits_open_file / ffopen
    (fitsfile **fptr, char *filename, int iomode, > int *status)
    => est-ce qu'on a un problème avec fopen de stdio ou avec les primitives de cette librairie.

    Pour le reste, il est clair que votre algorithme étant en O(n^2) avec n=360 incite à trouver des solutions pour rester en O(n) partout ou c'est possible.

    Vous avez pointé les ouvertures de fichiers, je vous ai incité à considérer aussi les entrées sorties disques (beaucoup plus coûteuses à mon sens puisqu'on devrait (re)lire 359 * 0,5 Go).

    Ce que vous devez chercher à réduire, c'est les relectures.
    Cela suppose que les données des images utilisées par votre algorithme pourront être extraites des fichiers et utilisées pour les 359 comparaisons.

    Une fois ces données extraites vous pourrez fermer le fichier.
    => Même si votre librairie 'limite' le nombre de fichiers ouverts à 255, cela ne devrait plus être un soucis.

    Cordialement
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 126
    Par défaut
    quand je dis pas de conception, je veux dire,que je ne passe pas par lediagrammes et le reste, mais sinon, y a tout a fait une conception
    alors ce que je dois faire est comme suit:

    je travaillesur des images astronomique;
    donc une image est une collecte de sous-images
    comme les dispositifs d'aquisition ne sont pas fiable a 100%, il nous faut corriger le fond du ciel,
    donc, je calcule l'intersection entre chaque deux images, ce qui reviens a les localiser dans l'espace(les coordonnees des points inf-gauche et sup-droit)

    donc pour chaque intersection de deux images, je calcule deux coefficients suivant les valeurs des pixels dans les images donnees et leur carte de poids

    a la fin de cette etape, j'aurais construit un systeme d'equation lineaire a resoudre par la methode LU par exemple, ce qui me donnerais au final les fonds de ciel de chaque images
    on faisant la soustracation, " image[i]-fond_ciel[i]) je trouve des images final normalement plus belles a voir, plus adaptees aux scientifiques...

    et il restera que l'etape de rassembler les morceaux qui est faits ailleurs
    NB: pour une meme region du ciel y a plusieurs acquisitions , et cela pour obetnir au final une meilleure image, la plus fidele possible a la realite
    merci de bien vouloir m'aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Difficultés à ouvrir plusieurs fichiers en mêmes temps
    Par anfernus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/07/2010, 13h53
  2. Réponses: 15
    Dernier message: 24/11/2008, 16h16
  3. Réponses: 38
    Dernier message: 26/09/2008, 17h46
  4. ouvrir plusieurs fichiers en même temps
    Par diiity dans le forum Windows
    Réponses: 0
    Dernier message: 03/08/2007, 18h26

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