0

我正在编写一个小 shell,我需要从中启动 emacs。但是,当我调用 emacs 命令时,我收到错误“请设置 TERM 环境变量,请参阅 tset”。现在,我尝试使用 tset 如下

tset xterm

我还尝试setenv()在我的代码中使用系统调用,如下所示

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

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

4

1 回答 1

1

根据我们在评论中的讨论以及这是 C 的事实,这一行是错误的:

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

您正在使用用于字符文字而不是字符串的单引号。许多编译器,如 gcc,实际上允许您包含多个字符作为扩展名。您应该使用字符串/双引号:

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

除非您使用明确包含环境的变体之一(如)fork(),否则进程的环境变量将被继承。exec()exec()execve()

于 2013-03-09T05:32:20.707 回答