2013-03-09 200 views
0

我正在写一个小外壳,我需要从它启动emacs。但是,当我调用emacs命令时,出现错误“请设置TERM环境变量,请参阅tset”。现在,我一直在使用不同厂家如如下如何设置TERM环境变量

tset xterm 

我也使用setenv()系统调用在我的代码如下

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

然而,两次错误仍然再次出现试图尝试。谷歌也不是很有帮助。有人可以解决这个问题吗?谢谢。

+0

在你调用'setenv()'后,你是否从相同的进程(或从它分出的一个进程)执行? – FatalError 2013-03-09 04:35:58

+0

来自同一个进程... – nave 2013-03-09 04:39:49

+0

您使用了exec()的哪种风格? – FatalError 2013-03-09 04:45:35

回答

1

基于我们在讨论的意见,事实上,这是C,此行是错误的:

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

您正在使用的用于字符文字而不是字符串单引号。许多编译器,如gcc,实际上可以让你包含多个字符作为扩展。你应该使用字符串/双引号:当你fork()exec(),除非您使用exec()的变种,明确包括环境(如execve())的一个

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

进程的环境变量inherted。

+0

谢谢..改变并没有解决问题,但你的文章是信息 – nave 2013-03-09 16:25:27