[Creation d'un Shell] Simuler un environ avec env -i

Simuler un environ avec env -i [Creation d'un Shell] - C - Programmation

Marsh Posté le 15-04-2009 à 12:01:52    

Bonjour,
Je suis actuellement entrain de coder un shell perso ;)
Je dois le faire tourner sur plusieurs plateforme (unix,linux,cisco?)
 
Lorsque l'on demare mon programme avec la commande ./Shell env -i, l'environ n'est pas transmis a l'executable.
J'ai donc un fichier avec un path stocker en dur.
Suivant les plateforme, les paths ne sont pas toujours les memes.
Comment recuperer (en assembleur ou en C ;) )
Le HOSTTYPE= , afin de lui balancer les bons paths.
 
si quelqu'un a une idee sa serait sympa ;)
 
Leoz


---------------
Worldcraze 10loop
Reply

Marsh Posté le 15-04-2009 à 12:01:52   

Reply

Marsh Posté le 15-04-2009 à 13:27:37    

Avec des directives de précompilation pour le setter en dur à coup de macro lors de la compilation du shell ?
Parce que de toute façon, faudra que t'en compiles une version par plateforme (pas le même ABI, pas le même OS, peut-être pas la même archi CPU, etc.)

Reply

Marsh Posté le 15-04-2009 à 21:01:07    

Si env n'est pas transmis, c'est que déjà t'as pas codé ce qu'il faut.
 
Ensuite pour le reste, y a pas de miracle: un PATH ça s'initialise à partir d'un fichier de démarrage. L'intérêt d'un shell, c'est justement de pas coder ça en dur

Reply

Marsh Posté le 17-04-2009 à 15:14:07    

@Taz: Les paths stocker en dur sont des paths disponible sur toutes les plateforme (bin/:sbin/...) (on a finalement decider d'utiliser ce conseil prealablement entendu ^^)
Enfait j'aurais besoin de recreer un environ a partir de donner disponible mais pas envoyer a mon executable (HOST, TERMCAP,PWD...)
je dis pas que env n'est pas transmis a chaque appel mais c'est un cas a gerer ^^
 
@Elmoricq : effectivement ce n'est pas la meme archi CPU et j'ai deja un Makefile multi plateforme.
 
Merci a vous deux ;)


---------------
Worldcraze 10loop
Reply

Marsh Posté le 17-04-2009 à 16:28:58    

hardcode donc, les dieux du shell te foudroieront

Reply

Marsh Posté le 27-04-2009 à 01:11:20    

HAAAAAAAAAAAAAAAAAAAIEUH, sa fait mal...


---------------
Worldcraze 10loop
Reply

Marsh Posté le 27-04-2009 à 15:18:04    

J'imagine que tu veux dire "env -i ./Shell", et pas "./Shell env -i" ?
 
Pour récupérer HOSTTYPE c'est perdu, puisque le but de env -i c'est justement de démarrer un programme avec un environement vide.
 
Elmoricq t'as donné la bonne solution (pour ce que tu veux faire, ce qui ne veut pas dire que ce que tu veux faire est la bonne solution).

Reply

Marsh Posté le 05-05-2009 à 20:53:09    

effectivement c'est bien "env -i ./Shell"
mais justement mon but été de faire un env sans env...
En gros environ va bien chercher ses données quelque part !
Je veux allez chercher ses données meme si je dois coder en assembleur ^^
 
Merci a vous :)


---------------
Worldcraze 10loop
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed