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 :

main et valeur de retour


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Points : 56
    Points
    56
    Par défaut main et valeur de retour
    bonjour

    j'ai un script shell qui lance un programme en C en ligne de commande, maintenat que j'ai reussi a le faire

    je voudrais passer un tableau de mon script shell vers mon programme en C et le recupere dans mon script shell apres que mon tableau est ete modifier dans mon programme en C

    1 - comment passer un tableau dans un char (argv)
    2 - comment retourne ton une valeur depuis main

    je n'es aucune idée sur l'intituler de la recherche

    merci d'avance pour vos idées

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 374
    Points : 23 631
    Points
    23 631
    Par défaut
    Bonjour,

    Citation Envoyé par lrgtk Voir le message
    1 - comment passer un tableau dans un char (argv)
    2 - comment retourne ton une valeur depuis main
    Il n'y a pas de manière à la fois propre et simple de faire de ce que tu veux faire. La valeur de retour de main() est l'état du processus. C'est celle que tu retrouves par « $? » en Shell et ERROR_LEVEL sous D.O.S, et qui est exploitée par les tests conditionnels tels que ?? ou || dans le Shell, pour savoir si un programme s'est déroulé normalement ou pas. Tu ne peux pas t'en servir pour échanger des données.

    En l'absence d'API dédiée, il faut utiliser les arguments et la sortie standard. « argv[] » est un tableau C initialisé en fonction de ce qu'il y a sur la ligne de commande, laquelle doit contenir des arguments séparés par des espaces. Ça tombe bien, bash (je suppose que tu utilises ce shell) te permet d'afficher le contenu entier d'un tableau séparé par des espaces en écrivant ${tableau[*]}. Donc :

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    $ ./tonprogramme ${tableau[*]}

    … te permet de résoudre la première partie de ton code.

    Pour le reste, tu peux initialiser en une seule fois un tableau bash avec les parenthèses : « nombres=(un deux trois quatre cinq) », les éléments étant là encore séparés par des espaces. Il faut donc que ton programme C écrive le résultat de cette manière sur la sortie standard, et que tu t'en serves comme paramètre avec les opérateurs « ` » par exemple.

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    $ resultat=(`./tonprogramme ${tableau[*]}`)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Moi, je conseillerais plutôt l'utilisation d'un fichier. Naturellement, cela ne répond pas strictement à la question, mais c'est tout de même la méthode généralement utilisée pour faire ce genre de choses.

Discussions similaires

  1. Valeur de retour d'une procédure stockée
    Par Rudyweb dans le forum MFC
    Réponses: 4
    Dernier message: 25/02/2005, 17h52
  2. fonction operator, valeur de retour
    Par butch dans le forum C++
    Réponses: 21
    Dernier message: 20/09/2004, 10h30
  3. [VB6] Valeur de retour pour une Form
    Par preverse dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/08/2004, 17h16
  4. Valeur de retour d'une procédure externe
    Par elekis dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 16/04/2004, 16h45
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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