Transférer une variable d'un script shell vers un programme c

Bonjour tout le monde, je voudrais savoire s'il y a moyen de transférer une variable de type entier d'un script shell vers un programme en c. J'ai essayer avec la fonction POPEN(), mais je pense qu'elle ne traite que le type char. Merci d'avance pour vos réponses

3 réponses

  1. Bonsoir,

    comme ça vite fait je dirais exec (man exec).
    0
    1. Contributeur
      Non, cela permet juste d'"exécuter" un programme (substitution par un processus).
      0
  2. Contributeur
    Bonjour,

    Je pense que tu n'as pas bien compris le fonctionnement de popen().
    Avec p=popen() tu crées un processus qui exécute la commande (const char*) entrée en argument. Elle retourne un FILE*. Donc tu lis le retour de la fonction comme si c'était un fichier. fscanf(p,"%d",&nb);
    Cdlt,
    0
    1. Modérateur
      A vue de nez, il te faut utiliser getenv
      Voir par exemple
      https://pubs.opengroup.org/onlinepubs/009696799/functions/getenv.html
      man getenv
      Ceci est évidemment valable sous les Unices. Sous Win$, je ne sais pas.
      0
      1. Contributeur
        jisisv,
        getenv() est standard, donc pas de problème pour windows. Mais cela ne récupère pas la variable d'un script mais une variable d'environnement.
        Cdlt,
        0
      2. Je vais peut être dire une bêtise:

        system() ?

        man sytem:

        "...The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise"

        Donc un tavaleur = system("ton_script.sh"); A condition que ton script retourne la valeur que t'as besoin...
        0