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

vipomc Messages postés 1 Statut Membre -  
jeremux Messages postés 60 Statut Membre -
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
A voir également:

3 réponses

jeremux Messages postés 60 Statut Membre 4
 
Bonsoir,

comme ça vite fait je dirais exec (man exec).
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Non, cela permet juste d'"exécuter" un programme (substitution par un processus).
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
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
jisisv Messages postés 3678 Statut Modérateur 935
 
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
fiddy Messages postés 11653 Statut Contributeur 1 847
 
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
jeremux Messages postés 60 Statut Membre 4
 
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