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

Fermé
vipomc Messages postés 1 Date d'inscription lundi 6 octobre 2008 Statut Membre Dernière intervention 27 avril 2013 - 27 avril 2013 à 20:23
jeremux Messages postés 58 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 30 mai 2013 - 28 avril 2013 à 13:08
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 samedi 23 octobre 2010 Statut Membre Dernière intervention 30 mai 2013 4
27 avril 2013 à 22:56
Bonsoir,

comme ça vite fait je dirais exec (man exec).
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
28 avril 2013 à 00:21
Non, cela permet juste d'"exécuter" un programme (substitution par un processus).
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
28 avril 2013 à 00:25
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
28 avril 2013 à 02:38
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
28 avril 2013 à 10:43
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 samedi 23 octobre 2010 Statut Membre Dernière intervention 30 mai 2013 4
28 avril 2013 à 13:08
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