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 :

Programme de mise à jour pour OpenBSD [En attente]


Sujet :

C

  1. #1
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut Programme de mise à jour pour OpenBSD
    Bonjour

    Je suis actuellement entrain de développer (plutôt commencer) un programme qui va me permettre de mettre à jour mon système OpenBSD.

    Pour le moment, le code est très petit mais ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include <stdio.h>
     
    void usage(void);
     
    int f_getfile;
     
    int
    main(int argc, char *argv[])
    {
        int ch;
     
        while ((ch = getopt(argc, argv, "g")) != 1)
            switch (ch) {
                case 'g':
                    f_getfile = 1;
                    break;
                default:
                    usage();
            }
        if (f_getfile)
        {
            printf("coucou");
        }
        exit(0);
    }
     
    void
    usage(void)
    {
        extern char *__progname;
     
        (void)fprintf(stderr,
            "usage: %s [-g [src | ports | all]]\n"
            "       %s [-u [src | ports | all]]\n"
            "       %s [-c [kernel | userland]]\n"
            "       %s [-i [kernel]]\n"
            , __progname, __progname, __progname, __progname);
        exit(1);
    }
    Lorsque j'exécute update -g du moins d'après ce que j'ai écrit, il devrait m'afficher "coucou" hors, il ne se passe rien

    update -g tout court ne sert à rien à moins d'indiquer src|ports|all afin de pouvoir télécharger les fichiers sources. D'où ma question, dois-je dans le if (f_getfile) utiliser à nouveau switch case ?

    Merci d'avance
    .Olivier

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Bonsoir, je propose ce code, à réadapter en fonction de tes besoins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <string.h>
    #define ARE_EQUAL 0
     
    void usage (char const *progname);
     
    int main (int argc, char **argv)
    {
       int option;
       int err = EXIT_SUCCESS;
       char const *options = "g:";
     
       opterr = 0;
     
       while ((option = getopt (argc, argv, options)) != -1)
       {
          switch (option)
          {   
             case 'g':
                if (strncmp ("src", optarg, 3) == ARE_EQUAL)
                {
                   /* do what you want here */
                }         
                else if(strncmp ("ports", optarg, 5) == ARE_EQUAL)
                {
                   /* do what you want here */
                } 
                else if(strncmp ("all", optarg, 3) == ARE_EQUAL)
                {
                   /* do what you want here */
                }
                else
                {
                   printf ("option %c %s incorrect\n", optopt, optarg);
                   usage(argv[0]);
                   err = EXIT_FAILURE;
                }
                break;
     
             case '?':
                printf ("option %c incorrect\n", optopt);
                usage(argv[0]);
                err = EXIT_FAILURE;
                break;
          }
       }
     
       return err;
    }
     
    void usage (char const *progname)
    { 
        fprintf (stderr,
                 "usage: %s [-g [src | ports | all]]\n"
                 "       %s [-u [src | ports | all]]\n"
                 "       %s [-c [kernel | userland]]\n"
                 "       %s [-i [kernel]]\n"
                 , progname, progname, progname, progname);
    }
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  3. #3
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Bonjour

    Tout d'abord, merci pour cet exemple de code. Je le mets de coté. En effet, j'ai développé un script shell (plus simple) afin d'effectuer les mêmes tâches.

    Je reprendrais ce programme un peu plus tard.

    Merci pour tout
    .Olivier

Discussions similaires

  1. Conseils pour un programme de mise à jour des programmes
    Par tyrtamos dans le forum Général Python
    Réponses: 2
    Dernier message: 09/12/2014, 12h46
  2. Programme de mise à jour Vista
    Par nostroyo dans le forum Windows
    Réponses: 4
    Dernier message: 29/01/2008, 10h29
  3. Quel solution de mise à jour pour vos programmes
    Par GanYoshi dans le forum Langage
    Réponses: 5
    Dernier message: 26/07/2007, 15h31
  4. Comment programmer une mise à jour ?
    Par qnop dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 15/03/2006, 16h33
  5. Programmer la mise à jour des tables attachées
    Par _developpeur_ dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 20h29

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