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. 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.
    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,
    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...
  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,
    1. Bonsoir,

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