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

vipomc Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
jeremux Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
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 58 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonsoir,

comme ça vite fait je dirais exec (man exec).
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Non, cela permet juste d'"exécuter" un programme (substitution par un processus).
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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 58 Date d'inscription   Statut Membre Dernière intervention   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