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 :

Ecraser un fichier existant avec rename


Sujet :

C

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut Ecraser un fichier existant avec rename
    Bonjour,

    j'aurais aimé avoir des précisions concernant le fonctionnement de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int rename ( const char * oldname, const char * newname );
    je me trouve dans le cas où le fichier 'newname' existe déjà et je voudrais qu'il soit écrasé...

    j'ai trouve ceci :
    Parameters

    oldname
    C string containing the name of the file to be renamed and/or moved. This file must exist and the correct writing permissions should be available.
    newname
    C string containing the new name for the file. This shall not be the name of an existing file; if it is, the behavior to be expected depends on the running environment, which may either be failure or overriding.
    auriez-vous des précisions concernant la partie soulignée?


    En fait, ce code se trouve dans une appli développée en C sur un poste tournant sous dos (eh oui, y'en a encore...)
    nous avons des buggs, et soupçonnons de se trouver dans ce cas de figure...

    donc, comment cela se déroulerait-il sous dos?
    est-ce que ça écrase bien?
    ou alors, est-ce qu'il y a une erreur? si oui, qu'est-ce que cela engendre?
    car à la suite nous renommage, nous ouvrons un fichier avec 'oldname' dans le but de le recréer...
    j'espère que vous me suivez...

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    je me trouve dans le cas où le fichier 'newname' existe déjà et je voudrais qu'il soit écrasé...
    Tu n'as qu'à l'ouvrir en "w" et écrire dedans !
    auriez-vous des précisions concernant la partie soulignée?
    C'est la norme, on ne peut en dire plus.
    ou alors, est-ce qu'il y a une erreur?
    pour le savoir, teste la valeur de retour de rename()
    j'espère que vous me suivez...
    Pas très bien. Qu'est-ce que tu veux faire exactement ?
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut
    Citation Envoyé par diogene Voir le message
    C'est la norme, on ne peut en dire plus.
    c'est une norme de dire "ça dépend" ?...
    y'a pas moyen de connaître le comportement exact pour tel environnement?



    En fait, j'ai un fichier dans lequel j'écris
    quand il arrive à une taille donnée, je veux le renommer de monFichier.txt en monFichier.log
    puis j'en ouvre un nouveau en monFichier.txt
    j'écris dedans...
    quand il atteint la taille fixé, je le renomme de .txt en .log
    etc...
    etc...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    c'est une norme de dire "ça dépend" ?...
    Il y a des cas où la norme ne peut pas imposer tel ou tel comportement face à telle ou telle situation. Le comportement peut donc dépendre de l'implémentation.
    Laisser la liberté ou non au système d'agir de telle ou telle manière, c'est pas décidé au pif. Il y a des raisons (que j'ignore).

    y'a pas moyen de connaître le comportement exact pour tel environnement?
    A moins de tester chacun d'entre eux...

    En fait, j'ai un fichier dans lequel j'écris
    quand il arrive à une taille donnée, je veux le renommer de monFichier.txt en monFichier.log
    puis j'en ouvre un nouveau en monFichier.txt
    j'écris dedans...
    quand il atteint la taille fixé, je le renomme de .txt en .log
    etc...
    etc...
    Une fois que ton fichier en cours ( "monFichier.txt" ) a atteint la taille que tu as déterminé, pourquoi ne pas faire un coup de remove ( http://www.linux-kheops.com/doc/man/.../remove.3.html ) sur "monFichier.log" ? Tu testes si la fonction n'a pas échoué. Si c'est bon, tu fermes ton fichier en cours puis tu le renommes via rename. Tu testes le retour de la fonction. Si c'est bon, tu crées un nouveau "monFichier.txt", etc.

    A mon avis, c'est ce qu'il y a de plus simple.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut
    Je ne cherche pas la solution idéale...
    l'appli est déjà développée, tel que je l'ai décrit
    et je cherchais à avoir des infos sur son comportement...
    voir s'il n'y aurait pas un comportement indésirable qui serait passé à la trappe lors du développement...

Discussions similaires

  1. [XL-2010] Macro VBA pour Enregistrer sous et ecraser automatiquement fichier existant
    Par lovlov33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2015, 16h51
  2. Ecraser un fichier texte avec les nouvelles données
    Par Dendrite dans le forum VB.NET
    Réponses: 15
    Dernier message: 21/08/2010, 07h49
  3. [XL-2003] sauvegarder et ecraser le fichier existant VBA
    Par gandalf20000000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/12/2009, 12h51
  4. [Spreadsheet Excel Writer] Utiliser un fichier existant
    Par skystef dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/01/2009, 12h02
  5. verifier si un fichier existe avec Inet
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/10/2007, 09h08

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