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

Bibliothèque standard C Discussion :

besoin de "ANSI-standard library routine tmpfile()"


Sujet :

Bibliothèque standard C

  1. #1
    Membre à l'essai
    Inscrit en
    septembre 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : septembre 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut besoin de "ANSI-standard library routine tmpfile()"
    Salut,

    tout est dans le titre, j'ai un code en C, où l'un des fichiers contient ceci:

    This implementation assumes that you have the ANSI-standard library routine tmpfile().
    Comment pourrais je la récupérer?

    merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    octobre 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Il semble que ça puisse se traduire par : " L'implémentation considère que vous possédez la fonction "tmpfile()" contenue dans la bibliothèque-standard.

    En gros, il te prévient qu'il va utiliser une fonction "externe", mais que celle-ci est normalement implémentée dans la bibliothèque de base, que tu dois déjà intégrer.

  3. #3
    Membre à l'essai
    Inscrit en
    septembre 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : septembre 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Merci,

    en fait j'ai une erreur d'exécution quelques part lors d'un appel à tmpfile().
    J'ai pensé au début que ça pourrait être un problème d'inclusion, mais à priori c'est faux, puisque la compilation est bonne.

    J'ai trouvé que la fonction est déjà définie dans stdio.h, mais je n'arrive pas à trouver son code pour pouvoir cerner mon problème :/

    Apparemment cette fonction échoue dans deux cas:
    1- {FOPEN_MAX} streams are currently open in the calling process.

    2- Insufficient storage space is available

  4. #4
    Membre averti Avatar de Mandraxx
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    mai 2011
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2011
    Messages : 182
    Points : 409
    Points
    409
    Par défaut
    Bonjour,

    Ça ne serait pas des fichiers qui sont ouverts et pas refermés par hasard ?

    En effet, tmpfile() ouvre un fichier en w+b : si vous ne faites pas un fclose et que vous êtes dans une boucle ...
    Cette erreur va inévitablement apparaître à l'itération qui va tenter de créer un fichier de plus que le résultat de (dans l'hypothèse où vous travailler sur système UN*X-Like) ou tout autre saturation d'un espace d'adressage.

    @+
    Le choix motivé par le seul argument de modernité est intrinsèquement dépourvu de créativité.

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 515
    Points : 2 503
    Points
    2 503
    Par défaut
    Commence pas regarder errno juste après le retour de tmpfile().

Discussions similaires

  1. The C++ Standard Library: A Tutorial and Reference
    Par zoom61 dans le forum Livres
    Réponses: 0
    Dernier message: 16/06/2014, 17h09
  2. Réponses: 4
    Dernier message: 07/06/2012, 11h31

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