• 締切済み

環境変数の設定

HP-UXにてC言語で開発しております。 C言語から、環境変数を変更したいのですができません。 getenvにて環境変数を取得することはできるのですが。 setenvを試したのですが以下のエラーでコンパイルが通りません。 ld: Unsatisfied symbol "setenv" in file ../obj/obj.o どなたかご教授いただけないでしょうか。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

HP-UXがOSの名前だって通じない人もいるんですね。 > hp-ux 環境変数設定 getenv こんなんで検索すれば [00001870] HP-UXのC言語で環境変数を設定 http://forums.belution.com/ja/cpp/000/018/70.shtml のようなとある掲示板での同様の質問が見つかりました。 >環境変数をセットするのは putenv() です。 だそうですよ。 でも setenv(3C) http://docs.hp.com/ja/B2355-60129/setenv.3C.html によると HP-UXでも setenv(3)はあるみたいですけど、バージョンによるんでしょうか? わたし自身はHP-UXを使ったことはないのですが、知り合いが使っていて 色々変わったところのあるOSだとは聞いていますが。 最後に。 > どなたかご教授いただけないでしょうか。 ×ご教授 ○ご教示

noname#27194
質問者

お礼

環境変数の設定"putenv"にて実装できました。 ※setenvは、"-lcext"等をmakefielに記述したのですが以下のエラーがでて駄目でした。 [エラー内容] ld: Can't find library or mismatched ABI for -lcext ありがとうございました。

回答No.3

> ★OS はなんですか? HP-UXだそうです。

回答No.2

少なくとも、標準関数にはsetenv()は存在しないようです。 system()の引数として、"setenv foo bar"というような 文字列を渡してみてはいかがでしょうか。 ただ、これで本当にできるかどうかはよくわかりません。 また、仮にできたとしても、変更した環境変数がいつまで有効なのかは 同じくわかりません。 そのプログラムを実行している間だけ有効なのかもしれませんし、 そうではないのかもしれません。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★OS はなんですか? ・Windows 系ならば『putenv』が環境変数の設定関数です。 ・あとシステムの環境変数は『putenv』では変更できません。  この場合はレジストリの変更になります。 ・とりあえず『putenv』関数で試して見て下さい。  『putenv("ABC=設定内容");』と使います。 ・以上。参考に!

参考URL:
http://www.matx.org/REFS/node166.htm

関連するQ&A

専門家に質問してみよう