Utilisation des arguments en C
Résolu/Fermé
teteve
Messages postés
123
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
23 février 2011
-
6 avril 2008 à 22:35
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 6 avril 2008 à 23:23
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 6 avril 2008 à 23:23
A voir également:
- Utilisation des arguments en C
- Notice d'utilisation - Guide
- Utilisation chromecast - Guide
- La ressource demandée est en cours d'utilisation ✓ - Forum Logiciels
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Votre compte a été désactivé pour violation de nos conditions d’utilisation - Guide
4 réponses
damlegone32
Messages postés
74
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
31 mai 2011
29
6 avril 2008 à 23:07
6 avril 2008 à 23:07
Salut,
Tu devrais utiliser la fonction strcmp qui renvoie 0 si les deux chaines passées en argument sont égales :
if (strcmp(argv[1],arg_restart) == 0) puts(arg_restart);
etc...
stcmp est une fonction de string.h (donc #include<string.h>)
Dans ce cas tu ne peux pas utiliser switch\case car ça ne marche qu'avec des entiers (ou équivalent).
En espérant avoir répondu a tes interrogations
A+
Tu devrais utiliser la fonction strcmp qui renvoie 0 si les deux chaines passées en argument sont égales :
if (strcmp(argv[1],arg_restart) == 0) puts(arg_restart);
etc...
stcmp est une fonction de string.h (donc #include<string.h>)
Dans ce cas tu ne peux pas utiliser switch\case car ça ne marche qu'avec des entiers (ou équivalent).
En espérant avoir répondu a tes interrogations
A+
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
6 avril 2008 à 23:11
6 avril 2008 à 23:11
Salut,
effectivement aucun intérêt
Si tu penses à créer une aplication avec des options penses plutôt à utliser
getopt
ou getopt_long (attention pour la portablité)
effectivement aucun intérêt
lami20j@debian:~$ cat teteve.c #include <stdio.h> #include<string.h> int main (int argc, char **argv) { char arg_restart[] = "restart"; char arg_start[] = "start"; char arg_stop[] = "stop"; if (argc != 2){ fprintf(stdout,"Usage : %s [restart|start|stop]\n",*argv); return -1; } if (strcmp(argv[1],arg_restart)==0) puts (argv[1]); if (strcmp(argv[1],arg_start)==0) puts (argv[1]); if (strcmp(argv[1],arg_stop)==0) puts (argv[1]); return (0); } lami20j@debian:~$ gcc teteve.c -o teteve lami20j@debian:~$ ./teteve Usage : ./teteve [restart|start|stop] lami20j@debian:~$ ./teteve start start lami20j@debian:~$ ./teteve restart restart lami20j@debian:~$ ./teteve stop stop lami20j@debian:~$ ./teteve sdfsdf lami20j@debian:~$Pour comparer 2 chaînes on utlises la fonction strcmp et pas l'opérateur ==
Si tu penses à créer une aplication avec des options penses plutôt à utliser
getopt
#include <unistd.h> int getopt(int argc, char * const argv[],const char *optstring); extern char * optarg; extern int optind, opterr, optopt;
ou getopt_long (attention pour la portablité)
#define _GNU_SOURCE #include <getopt.h> int getopt_long (int argc, char * const argv[],const char * optstring, const struct option * longopts, int * longindex);
teteve
Messages postés
123
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
23 février 2011
40
6 avril 2008 à 23:21
6 avril 2008 à 23:21
Merci à vous deux,
Le projet est bien plus vaste que ce petit problème (création d'un gestionnaire de forum local sous Debian).
Ce code sert juste au lancement d'un processus père qui créera un démon grâce à un fork.
Je replonge dans mon bouquin pour explorer tout ça...
Sûrement à bientôt et bonne soirée :)
Le projet est bien plus vaste que ce petit problème (création d'un gestionnaire de forum local sous Debian).
Ce code sert juste au lancement d'un processus père qui créera un démon grâce à un fork.
Je replonge dans mon bouquin pour explorer tout ça...
Sûrement à bientôt et bonne soirée :)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
6 avril 2008 à 23:23
6 avril 2008 à 23:23
Sûrement à bientôt
En, ce cas pense à nous expliquer ce que tu veux faire.
Ca nous permettra de pouvoir t'aider au cas où ;-)
En, ce cas pense à nous expliquer ce que tu veux faire.
Ca nous permettra de pouvoir t'aider au cas où ;-)