• 締切済み

環境変数の設定

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

noname#27194
noname#27194

みんなの回答

  • 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

  • Linux環境変数設定(putenv?setenv?)

    RedHatLinux7.3(2.96-110)、gcc(2.96 20000731)です。 C言語でプログラミングしていますが、環境変数設定がうまくいかず困っています。 下記の2つで試しましたが、どちらも戻り値は正常(0)なのに環境変数には設定されないのです。 その1: nRet = putenv( "HOGE_HOGE_VER=1.0.0" ); その2: nRet = setenv( "HOGE_HOGE_VER", "1.0.0", 1 ); この使い方は間違っているのでしょうか?それと、putenv、setenvの違いはなんなのでしょうか? ちなみに、既に設定されている環境変数をgetenvすることは、ちゃんとできるのですが。 よろしくお願いします。

  • Javaの環境変数の設定について

     環境変数の設定をしたのですがコンパイルなどができません。なんででしょうか?  環境変数はPathのところに;C:\j2sdk_1.4.2_11\binと入力しています。

    • ベストアンサー
    • Java
  • クライアントの環境変数値を得る。

    よろしくお願いします。 web上からCGIを実行したときに そのCGIを実行したクライアントの環境変数値を得ることは可能でしょうか? システム環境変数の「HOME」や「TEMP」の指定先を得たいのですが。 クライアント端末はWindows2000 or XP です。 webサーバー・・・HP-UX web・・・IE CGI開発言語・・・Perl もしくは csh 開発端末・・・windows2000(Tera Term 使用)

    • ベストアンサー
    • CGI
  • 同時に環境変数を変えることはできるのでしょうか・

    javaのプログラミングの勉強をしていて、ついでにC言語の勉強をはじめようと思ったのですが、環境変数のところでいきなりつまずいています。 javaの環境変数はきちんと設定されているのですが 新しくC言語の環境変数を通すと、以前のjavaで設定 した環境変数を消すことになってしまいます。 javaとc言語のpathの環境変数を同時に設定したまま 残すことはできないのでしょうか? どなたかお願いします!!

  • OSの環境変数をPHPで取得する方法

    PHPでOSの環境変数に設定されている値を取得したいです。 PHPはApacheの環境変数しか取得できないみたいです。 APACHEのDocumentから以下の方法を見つけました。 ----------------------------------------------------------- httpd プロセスを起動したシェルの環境から CGI スクリプトと SSI ページに渡す環境変数を一つ以上指定します。 例 PassEnv LD_LIBRARY_PATH ----------------------------------------------------------- httpdプロセスを起動したシェルとあるのですが、Apapcheユーザの ホームディレクトリはありません。 この場合どこに設定すればよいでしょうか? /etc/bachrcや/etc/profile に設定してもダメでした。 ApacheDocumentの下記の方法だとgetenv()で取得できます。 ------------------------------------------------------------ 環境変数を設定し、それを CGI スクリプトと SSI ページに渡すようにします。 例 SetEnv SPECIAL_PATH /foo/bin ------------------------------------------------------------ なので最初の方法でもいけるのではないかと思います。 環境 PHP:521 Apache:2.0.52 OS:RedHatEL4.4

    • ベストアンサー
    • PHP
  • PostgresSQLの環境設定についてご教示願います

    こんばんわ。 現在、C言語でPostgresSQL8.3を使用しようとしています。 CコンパイラはBorland C++5.5を利用しています。  ※OSはWindowsXP-Pro/SP2です Cソースは、単純にデータベースに接続、SELECT処理、切断を行なう だけのものですが、コンパイル時に以下のリンクエラーが表示されます。 Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland test01.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error:外部シンボル'_PQsetdbLogin'が未解決(D:\TEST01.OBJ が参照) Error:外部シンボル'_PQstatus'が未解決(D:\C\TEST01.OBJ が参照) Error:外部シンボル'_PQexec'が未解決(D:\TEST01.OBJ が参照) Error:外部シンボル'_PQresultStatus'が未解決(D:\TEST01.OBJ が参 照) Error:外部シンボル'_PQerrorMessage'が未解決(C:\TEST01.OBJ が参 照) Error:外部シンボル'_PQgetvalue'が未解決(C:\TEST01.OBJ が参照) Error:外部シンボル'_PQclear'が未解決(C:\TEST01.OBJ が参照) PostgresSQLのインストール後に行なった設定としては、 コンパイラ側のbcc32.cfg内に、 -I"PostgresSQLインストールDir\include" -L"PostgresSQLインストールDir\lib" を追加しただけです。 もしこれ以外に必要な設定がありましたらご教示頂けますよう お願い致します。

  • 環境変数の取得

    はじめまして。VB6.0で開発を行っております。 その中で環境変数の取得をしたいと思っております。 環境変数の取得には、「Environ」関数を使用しております。この関数では、ユーザが設定した環境変数は取得できないのでしょうか? システムをインストールする際に環境変数の設定を行っております。その後、システムでその環境変数を取得したいと思っているのですが、うまく取得できません。 「Path」とかであれば取得できるのですが・・・。 それと、マイコンピュータのプロパティから環境変数を調べてみたところちゃんと設定されています。 よろしくお願いします。

  • Linux環境におけるgetprocs関数

    お疲れ様です、初めてLinux環境で開発(C言語)している者です。 流用元(HP-UX環境/C言語)のソースをコンパイルしたところ、 「getprocs」(プロセス情報の取得?)という関数でエラーになりました。 <procinfo.h>というヘッダをincludeしているのですが、 このヘッダファイルも見当たりません。 Linuxでは、使用できない関数なのでしょうか? また、代替手段などあるのでしょうか? getprocs自体、ネットで調査してもあまり有力な情報をヒットできず、苦慮してます。 ご存じの方おりましたら、ご教授よろしくお願いいたします。

  • javaの中で環境変数を設定する。

    javaの記述内で環境変数を設定する事は出来るのでしょうか? osはredhat linuxです。 具体的にはJAVAからCのモジュールをSystem.loadLibraryで 読み込んでいますが、環境変数LD_LIBRARY_PATHから探しに行くと思います。 このCのモジュールのパスを外部ファイルに持たせ、変更できるようにしたいのです。 何か良い方法がありますでしょうか? 以上、宜しくお願いします。

    • ベストアンサー
    • Java
  • C言語の開発環境

    C言語のクオリティの高いフリーの開発環境を探しています。 Javaの開発環境として、Eclipseが良かったので、C言語も Eclipseでやってみたものの、Javaに比べて、自動的に文法 チェックや関数の補完、コンパイルへのショートカットがない、 コンパイルがかなり面倒と結構つかいにくく、他にいいのが ないか探しています。 C言語のオススメの開発環境、教えてください。

専門家に質問してみよう