0

小さなシェルを作成していて、そこから emacs を起動する必要があります。しかし、emacs コマンドを呼び出すと、「TERM 環境変数を設定してください。tset を参照してください」というエラーが表示されます。さて、次のようなtsetを使ってみました

tset xterm

setenv()また、次のようにコードでシステムコールを使用してみました

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

ただし、どちらの場合もエラーが再発します。Googleもあまり役に立ちませんでした。誰かがこれをクリアできますか?ありがとう。

4

1 に答える 1

1

コメントでの議論と、これが C であるという事実に基づいて、この行は間違っています。

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

文字列ではなく文字リテラルに使用される単一引用符を使用しています。実際、gcc などの多くのコンパイラでは、拡張子として複数の文字を含めることができます。文字列/二重引用符を使用する必要があります。

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

プロセスの環境変数は、明示的に環境を含むバリアントのいずれか ( など) を使用fork()しない限り、継承されます。exec()exec()execve()

于 2013-03-09T05:32:20.707 に答える