- 締切済み
環境変数の設定
HP-UXにてC言語で開発しております。 C言語から、環境変数を変更したいのですができません。 getenvにて環境変数を取得することはできるのですが。 setenvを試したのですが以下のエラーでコンパイルが通りません。 ld: Unsatisfied symbol "setenv" in file ../obj/obj.o どなたかご教授いただけないでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
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だとは聞いていますが。 最後に。 > どなたかご教授いただけないでしょうか。 ×ご教授 ○ご教示
- totsugiino
- ベストアンサー率37% (6/16)
> ★OS はなんですか? HP-UXだそうです。
- totsugiino
- ベストアンサー率37% (6/16)
少なくとも、標準関数にはsetenv()は存在しないようです。 system()の引数として、"setenv foo bar"というような 文字列を渡してみてはいかがでしょうか。 ただ、これで本当にできるかどうかはよくわかりません。 また、仮にできたとしても、変更した環境変数がいつまで有効なのかは 同じくわかりません。 そのプログラムを実行している間だけ有効なのかもしれませんし、 そうではないのかもしれません。
- Oh-Orange
- ベストアンサー率63% (854/1345)
★OS はなんですか? ・Windows 系ならば『putenv』が環境変数の設定関数です。 ・あとシステムの環境変数は『putenv』では変更できません。 この場合はレジストリの変更になります。 ・とりあえず『putenv』関数で試して見て下さい。 『putenv("ABC=設定内容");』と使います。 ・以上。参考に!
お礼
環境変数の設定"putenv"にて実装できました。 ※setenvは、"-lcext"等をmakefielに記述したのですが以下のエラーがでて駄目でした。 [エラー内容] ld: Can't find library or mismatched ABI for -lcext ありがとうございました。