我正在编写一个小shell,我需要从中启动emacs。但是,当我调用emacs命令时,我收到错误“请设置TERM环境变量,请参阅tset”。现在,我尝试使用如下的tset
tset xterm
我也尝试在我的代码中使用setenv()
系统调用,如下所示
setenv('TERM','xterm',0);
然而,两次错误仍然会再次出现。谷歌也不是很有帮助。有人可以解决这个问题吗?谢谢。
答案 0 :(得分:1)
根据我们在评论中的讨论以及这是C的事实,这一行是错误的:
setenv('TERM','xterm',0);
您使用的是单引号,用于字符文字而不是字符串。许多编译器,如gcc,实际上允许您包含多个字符作为扩展名。你应该使用字符串/双引号:
setenv("TERM","xterm",0);
除非您使用明确包含环境的fork()
变体之一(例如exec()
),否则在您exec()
和execve()
时会忽略流程的环境变量。< / p>