2013-03-09 1 views
0

Je suis en train d'écrire un petit shell et j'ai besoin de lancer Emacs. Cependant, lorsque j'appelle la commande emacs, j'obtiens l'erreur "Veuillez définir la variable d'environnement TERM, voir tset". Maintenant, je l'ai essayé d'utiliser tset tels que suitComment définir la variable d'environnement TERM

tset xterm 

J'ai aussi essayé d'utiliser l'appel système setenv() dans mon code comme suit

setenv('TERM','xterm',0); 

Cependant, les deux fois l'erreur réapparaît encore. Google n'a pas été très utile aussi. Quelqu'un pourrait-il éclaircir ça? Merci.

+0

Après avoir appelé 'setenv()' avez-vous exec de ce même processus (ou d'un fork)? – FatalError

+0

à partir du même processus ... – nave

+0

Quelle saveur de exec() avez-vous utilisé? – FatalError

Répondre

1

Sur la base de notre discussion dans les commentaires et le fait que ce C, cette ligne est faux:

setenv('TERM','xterm',0); 

Vous utilisez des guillemets simples qui sont utilisés pour les littéraux de caractères et non des chaînes. De nombreux compilateurs, comme gcc, vous permettront en fait d'inclure plusieurs caractères en tant qu'extension. Vous devez utiliser cordes/guillemets doubles:

setenv("TERM","xterm",0); 

Le processus variables d'environnement sont inherted lorsque vous fork() et exec() sauf si vous utilisez l'une des variantes exec() qui inclut explicitement un environnement (comme execve()).

+0

Merci..Le changement n'a pas résolu le problème, mais votre poste était informatif – nave

Questions connexes