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 :

Sauvegarde à la réception d'un CTRL-C


Sujet :

POSIX C

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 98
    Points : 64
    Points
    64
    Par défaut Sauvegarde à la réception d'un CTRL-C
    Bonsoir. J'écris un petit programme multithreadé. J'aimerai qu'à la réception d'un signal CTRL-C le programme puisse sauvegarder l'état de la mémoire avant de s'arrêter. J'arrive à capturer le signal mais je sais pas comment passer les variables au traitant (elles ne sont pas globales).
    Je voudrai savoir si il existe un moyen de passer les variables non globales au traitant. Si oui, comment? Si non, pourquoi?
    Merci!!

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 065
    Points
    43 065
    Par défaut
    Tu peux utiliser les signaux POSIX (signal.h)

    Si tu es sous Windows, je ne sais pas comment c'est géré, ça doit exister mais il doit y avoir des fonctions spécifiques dans lesx API.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 98
    Points : 64
    Points
    64
    Par défaut
    Je suis sur Ubuntu 19.04.

    J'utilise sigaction de POXIS pour la capture. mais le handler prend un int en paramètre qui correspond au signal.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 108
    Points : 143
    Points
    143
    Par défaut
    C'est un peu farfelue ce que tu essaies de faire. Si après le Ctrl+C, il y a des données en cours de traitements?
    Pourquoi ne pas utiliser des pointeurs globales?
    Et montre le code complet ça m’intéresse.

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 065
    Points
    43 065
    Par défaut
    Je suis sur Ubuntu 19.04.
    Tu peux alors tu simplement gérer un handler pour sigint.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <signal.h>
     
    void sigintHandler(int sig_num) 
     { 
       printf("SIGINT intercepté\n");
    }
     
     
    int main()
    {
        signal(SIGINT, sigintHandler); 
        // ton code
    }
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/02/2016, 20h27
  2. [WD17] Réception et sauvegarde image Socket [WDM17]
    Par NicoSab dans le forum WinDev
    Réponses: 4
    Dernier message: 01/07/2014, 17h08
  3. Réponses: 3
    Dernier message: 25/02/2014, 13h32
  4. [VBA, Pb serveur mail Exchange] Réception et Sauvegarde
    Par nokolyo dans le forum VBA Outlook
    Réponses: 8
    Dernier message: 01/12/2008, 17h51
  5. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21

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