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 :

Sauvegarder valeur dans executable


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 17
    Par défaut Sauvegarder valeur dans executable
    Bonjour à tous,

    Je me pose une question, à laquelle je ne trouve pas de réponse

    J'espère que vous pourrez me répondre.

    Imaginons le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
     
    int a=0;
     
    main()
    {
    scanf("%d", &a);
    return 0;
    }
    Donc à l'execution, je saisi par exemple a=5. Si je ferme l'executable et le relance, naturellement a=0 au début.

    Est-il possible d'enregistrer la valeur dans l'executable, de manière qu'à la prochaine ouverture de l'executable, la valeur a=5 soit présente ?

    Merci .

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Je dirai bonne question.

    Maintenant , je ne connais pas de méthode pour faire ce que tu demande.

    Par contre une des solutions envisageable , et de sauvegarder ta valeur dans un fichier.
    Au sinon , pour faire ce que tu demande , il faudrai réecrire l'executable à chaque fois.

    Pour plus d'information , une fois ton executable lancée , il va être mis ( le code ) dans la mémoire vive. Si tu ferme l'executable , le système va nettoyer la mémoire vive qu'occuper le programme. ( Si tu éteinds ton PC , la mémoire vive perd les données. ) Donc il n'y a pas trop de moyen de sauvegarder la valeur dans l'executable ... à par ecrire un fichier.

    Mais comme je ne connais pas tout , je ne suis pas sur à 100% , mais alors ce serai la première fois que j'entends un truc pareil ... donc je pense pas trop que cela soit possible
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    On ne stocke pas la valeur dans l'exécutable mais dans un fichier auxiliaire ("a.machin" par exemple). Au lancement de ton application, tu ouvres ce fichier ("a.machin"), tu lis la valeur enregistrée et tu l'affectes dans a. A la fermeture, tu fais l'opération inverse (écrire la valeur de a puis fermer le fichier). Si le fichier est introuvable au démarrage de l'application, tu suis ton cahier de charge (que fait-on dans ce cas : on quitte le programme après avoir expliqué à l'utilisateur la cause du problème ? on met une valeur par défaut dans a et on crée un nouveau fichier ? etc.).

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Raisons pour lesquelles on ne stocke pas de valeurs dans un exécutable:
    • Tu peux ne pas avoir le droit de lecture/écriture sur cet exécutable, uniquement le droit d'exécution
    • Tu peux ne pas avoir le droit de lecture/écriture dans le répertoire de cet exécutable (répertoire /usr/bin par exemple)
    • Les données d'un utilisateur n'intéressent peut être pas un autre utilisateur.
    • En cas de mise à jour de ton binaire, tu fais comment pour récupérer les données inscrites dedans.
    • Si tu t'amuse à modifier ton binaire, le contrôle de consistance effectué par certain utilitaires système(Tripwire par exemple) pour détecter l'implantation d'un virus ou d'un cheval de troie ne va plus marcher. Ce contrôle se fait par vérification du checksum du binaire.


    Donc définitivement, on ne touche pas à un binaire et on fait des fichiers de données annexe
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 17
    Par défaut
    D'accord au moins c'est très clair, merci beaucoup pour vos réponses

  6. #6
    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 magestik Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
     
    int a=0;
     
    main()
    {
    scanf("%d", &a);
    return 0;
    }
    Donc à l'execution, je saisi par exemple a=5. Si je ferme l'executable et le relance, naturellement a=0 au début.

    Est-il possible d'enregistrer la valeur dans l'executable, de manière qu'à la prochaine ouverture de l'executable, la valeur a=5 soit présente ?
    Pas de manière portable.

    Le principe portable est de sauvegarder les données dans un fichier séparé.

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

Discussions similaires

  1. [Débutant] Sauvegarde valeurs dans boucle
    Par tnb_neb dans le forum MATLAB
    Réponses: 3
    Dernier message: 11/04/2008, 16h06
  2. [debutant]sauvegarde des valeurs dans un formulaire
    Par pimousse_cerise dans le forum JSF
    Réponses: 7
    Dernier message: 15/06/2007, 09h56
  3. Comment sauvegarder des valeurs dans un fichier txt
    Par NELLLY dans le forum MATLAB
    Réponses: 3
    Dernier message: 16/04/2007, 17h39
  4. Sauvegarde automatique de valeur dans une base
    Par gondole38 dans le forum Access
    Réponses: 3
    Dernier message: 05/01/2007, 08h54
  5. Réponses: 20
    Dernier message: 23/03/2006, 16h21

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