Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C > Récuperer un argument lors d'une invocation sur CMD ou BASH > Lecture du sujet

Récuperer un argument lors d'une invocation sur CMD ou BASH

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne Carboneater # Posté le 19/07/2008 à 03:29:34
Avatar
Groupe : Membres
Mise en situation:


j'ai une application SelectServer, qui est un serveur futur pour un jeu en cours de developement. Il est presque parfait (à part qu'il est encore peu garni en fonctionnalitées) mais, afin de le garder aussi performant que possible, il n'interragis en aucune façon avec le systeme.

Donc, j'ai pensé à plusieurs solutions possibles, mais, celle qui m'est apparu comme étant la meilleure est de me créer un petit programme à côté du serveur, afin de le contrôler.

Le contrôle s'effectue via un socket, et, afin de différentier les messages contenant une commande au serveur des banales transmissions avec lesquelles le serveur doit jouer, tous les messages qui sont lancés par srvadmn dans le socket portent tous le flag MSG_OOB (Message Out_Of_Band: Message Hors-fréquence/prioritaire).

Les deux programmes sont écrits en C.
Les sockets sont du type TCP/IP.
Aucun module réseau n'est utilisé. Tout sort des fichiers sources sortant directement du /usr/include.


Le coeur du problème:


Le programme srvadmn doit avoir plusieurs fonctionnalités, du genre, mais non exclusivement:
-kill
-update
-reboot
-...

Donc, j'ai pensé faire un programme qui se lance en console.
Et, comme tout bon programme qui se lance en console, il a des arguments a spécifier au moment de l'invocation.
Code : Bash
1
$ srvadmn --action_désirée

Et, selon la valeur associée a --action_désirée, le programme effectueras une tâche plutôt qu'une autre...

Ma question est donc:
Comment est-ce que je peux récupérer un/des argument/s lors d'une invocation dans BASH?

Carboneater,
Co-fondateur du projet Xentios
Programmeur de Xentios
 
Hors ligne Double__M # Posté le 19/07/2008 à 04:20:31
Groupe : Membres
En console, tu récupere les argurments grace aux variables $n ("n" étant un nombre) :

$0 => le nom de la commande
$1 => le 1er arguments
$2 => le 2eme arguments
$3 => ...
$* => l'ensembles des arguments $1, $2, $3....(si tu fait une boucle avec ça, shift te sera utile...)
$# => contient le nombre d'arguments
Bon courage pour la suite ;)
Édité le 19/07/2008 à 04:27:57 par Double__M

Tous unis pour la liberté sur le net !
 
Hors ligne Carboneater # Posté le 19/07/2008 à 05:08:02
Avatar
Groupe : Membres
Et, dans un programme en C, comment je fais pour integrer les $* a mes codes? Parce que, j'ai essaye ce que tu propose, mais la variable $1 est non-declaree, comment est-ce que le compilateur peut savoir que $1 provient de l'invocation en BASH?

Carboneater,
Co-fondateur du projet Xentios
Programmeur de Xentios
 
Hors ligne Dagrut # Posté le 19/07/2008 à 10:06:39
Be API! ^_^
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Salut!

Pour récupérer les arguments envoyés au programme, lis d'abord ceci.

Et pour les traiter, tu le fais "à la main", ou, si tu est sous linux, tu peux utiliser getopt.

Racketiciel - Langage SMS
Lien cassé >> MP!
Mes programmes et mes circuits TMN/TMNF << Donnez votre avis! :)
Le pédalo c'est du passé. ^^
État jabber : Image utilisateur
















Adresse de test (Pour les spams). Ne pas envoyer de message!
ofguiauzomxumwcaysqx@yahoo.fr
 

Retour au forum "Langage C" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 224 Zéros connectés | Requêtes SQL 9 requêtes | Temps de génération de la page : Total (SQL) 0.0455s (0.0278s)