2013-03-09 354 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