プロが教える店舗&オフィスのセキュリティ対策術

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

どなたかご教授いただけないでしょうか。

A 回答 (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だとは聞いていますが。

最後に。
> どなたかご教授いただけないでしょうか。
×ご教授
○ご教示
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2007/04/09 10:40

> ★OS はなんですか?



HP-UXだそうです。
    • good
    • 0

少なくとも、標準関数にはsetenv()は存在しないようです。


system()の引数として、"setenv foo bar"というような
文字列を渡してみてはいかがでしょうか。
ただ、これで本当にできるかどうかはよくわかりません。

また、仮にできたとしても、変更した環境変数がいつまで有効なのかは
同じくわかりません。
そのプログラムを実行している間だけ有効なのかもしれませんし、
そうではないのかもしれません。
    • good
    • 0

★OS はなんですか?


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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!