• ベストアンサー

環境変数について

家庭用カテゴリーに投稿するレベルの基本的なことなのですが、技術者の方に詳説して頂きたくて本カテゴリーに投稿します。 以前からの疑問なのですが、「環境変数」って一体何なのでしょうか?プログラミングでも出て来ましたし、環境設定でも出て来ます。 難しい用語が入っていても結構ですので、詳しく教えて頂けますでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.3

『環境変数とは何か?』を考えるより、『何故?環境変数が存在するのか?』から、考えるとわかりやすいと思います。 "Windows"と一言で言っても、(初期のver.1.0~3.1は別として)95、98、Me、NT(Workstation/Server)、2000(Pro/Server)、XP(Home/Pro/Media Center)、Server2003と何種類もありますし、それをユーザーがカスタマイズしたりすれば、使っている環境は人様々です。 例えば、95/98/Me/XP/Server 2003の"Windows"システムがインストールされているフォルダは、(デフォルトでは)"C:\WINDOWS"ですが、NT/2000のそれは"C:\WINNT"です。 しかも、ユーザーが意図的に別のフォルダ名を指定してインストールすることも出来ますから、アプリケーション側から、OSのバージョンを判定しても、システムフォルダが必ずしも"C:\WINDOWS"や"C:\WINNT"になるとは限りません。 そういう時に、"Windows"のシステムフォルダの名前を参照する環境変数("windir"や"SystemRoot")があれば、様々な環境に対応しやすくなります。 同様に、NT/2000/XP/2003のような、マルチユーザー環境では、ユーザー名やユーザープロファイルが格納されているフォルダを示す環境変数("UserName"、"UserProfile")があります。

aopoma
質問者

お礼

システムは必ずC\Win(C\WINNT)と思い込んでいました。別の場所でも環境変数でPATHを指定すれば起動して稼動するのですね。ちょっと驚きです。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • suzui
  • ベストアンサー率67% (199/297)
回答No.4

環境変数とは、環境によって変わる値のことです。 環境とは、コンピュータが現在おかれている状態のことで、具体的には、 コンピュータの機種、置かれた場所、タイムゾーン、コンピュータの名前、OSがインストールされたディレクトリ名、現在ログオンしているユーザ名、プログラムをインストールしたディレクトリ名、 などが含まれます。これ以外にもあるでしょう。 各項目について、現状の値をOSが維持・保管しています。それが環境変数です。 環境変数を利用するのは、プログラムです。 プログラムは環境変数を読み取ることで、 実行されるコンピュータの現状(環境)を知ることができます。 プログラムを作成するプログラマは、環境変数を読み取っていろいろな環境で動作するように、プログラムを作ります。 OSには、他にもファイルやレジストリなど、環境の情報を保管しておく仕組みが複数あることが多いです。 保管しておく情報量が多かったり、特定のプログラムでしか利用されない情報である場合は、ファイルやレジストリに情報を格納します。 また、次回起動時に情報を引き継ぎたい場合もファイルやレジストリなど、消えない形で残します。 環境変数は、さまざまなプログラムが共通に参照するような、一般的な環境に関する情報を、メモリ上に格納する仕組みとも言えます。 だから、特に対策を講じない限り、再起動すれば消えてしまいます。 毎回同じ値を環境変数に設定したい場合は、起動時に読み込まれるファイルの中にその設定情報を格納しておくことで、OSが読み込み、環境変数に反映します。 Windows PCであれば、コマンドプロンプトで、 set を実行すれば、現在の環境変数の一覧とその値が表示されます。

aopoma
質問者

お礼

レジストリも今いちイメージ出来ていないんですね。不勉強さを実感しています。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • nagare
  • ベストアンサー率33% (280/831)
回答No.2

変数はわかりますよね? では環境とは、今起動しているOSの情報です DOS窓(コマンドプロンプト)でSET打ってください 色々でますよね たとえば、今ログインしているユーザ名を取得したいのなら、USERNAMEという環境変数を見ればいいんです なぜ、環境変数があるかというと、ログインユーザって無限にあるじゃないですか (nPCにnログイン名) でも、USERNAMEを見ればいいんです 簡単すぎるかもしれないけど、こんなものです 環境変数は色々あるので、全部調べたら面白いと思いま すけど 環境変数の歴史まで知りたいのなら「UNIX」「MS-DOS」というOSを勉強してくださいね

aopoma
質問者

お礼

やはり原型はUNIXなんですね。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

ご参考

参考URL:
http://www.atmarkit.co.jp/icd/root/56/5787256.html
aopoma
質問者

お礼

URL参照しました。参考になりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 環境変数についてー

    こんにちわ! 昨日も投稿しました環境変数についてです。 Javaプログラミングを行っていて、コンパイル→実行…といきたいのですが 実行がどうしてもできない!! 様々な原因を探り、確認しなおしてきても未だに実行できていません。 問題は環境変数の設定の仕方にあるようなのです。 そこで質問なのですが、ユーザー環境変数とシステム環境変数の PATHや CLASSPATH 、JAVA_HOME は同じ設定にしなくてはいけないのでしょうか??  どうかこの疑問についてアドバイスを、どうぞ宜しくお願い致します!

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

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

  • 環境変数って何ですか?

    自慢になりませんが、パソコンのことは何もわかりません。 こないだBorland C++とかいうのをインストールしたときに、普通の手順でインストールは済んだんですが、うまく動かず人に聞いたところ「パスが通ってないんじゃない?」といわれ、その人に「環境変数」とかいうのを変更してもらったら万事うまくいったんですが・・・。 (1)環境変数って何ですか? (2)「パスが通ってない」とはどういう意味ですか? もちろんパソコン用語辞典で調べてはみたんですが、 「OSのシェルなどに設定されている、システムの属性を記録している変数。変数の名前と意味はあらかじめ決まっているため、環境変数を読み込めばシステムの設定がある程度分かるようになっている(以下略)」 さっぱりわかりません。OSはどもかく、シェルがよくわかってません。どうか初心者向けの解説を乞う次第です。

  • ユーザ環境変数とシステム環境変数の違い

    ユーザ環境変数とシステム環境変数の違いって何ですか? CLASSPATHを設定しようとしているのですが、本ではシステム環境変数に設定していますが、同じような目的のCLASSPATHの設定でもネットの解説などではユーザ環境変数に設定していたりして、この疑問が出てきました。 よろしくお願いします。

  • Win10の環境変数について誤削除の変数は無いか?

    Win10の環境変数について 設定(歯車アイコン)→システム→詳細情報→右端の関連設定→システムの詳細設定をクリックするとシステムのプロパティ画面が表示され、詳細設定タブ→環境変数(下側にあるアイコン)をクリックし環境変数の画面に入れます。OneDriveを使用しないのでユーザーの環境変数からOneDriveを削除しました。(他のクラウドを使用)ユーザーの環境変数と、下側のシステム環境変数の変数を間違って削除していないか、変数で何か抜けたものが無いか教えてください。Windows10 64bit HOME 20H2正規版エディションです。 ユーザーの環境変数 上からPath、TEMP、TMP システム環境変数 上からNUMBER_OF_PROCESSORS、OS、Path、PATHEXT、PROCESSOR_ARCHITECTURE、PROCESSOR_IDENTIFIER、PROCESSOR_LEVEL、PROCESSOR_REVISION、PSModulePath、TEMP、TMP、USERNAME、windir という並びになっています。

  • 環境変数の追加について

    WindowsXP Pro sp2です。 『システムのプロパティ』の『詳細設定』タブ内の『環境変数』ボタンを押すと『(ユーザ名)のユーザ環境変数』とありますが、ここに任意のpath情報を追加しても問題ありませんでしょうか。 影響があるとすればどういった場合が考えられるでしょうか。 他の環境変数に設定してあるものと重複するものではありません。 また『システム環境変数』に追加することも問題ないのでしょうか。 『ユーザ環境変数』に追加した方が無難かとは思っていますが・・・。 よろしくお願いいたします。

  • 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することは、ちゃんとできるのですが。 よろしくお願いします。

  • mac OSXの環境変数

    基本的な質問で申し訳ありませんが、macの環境変数について教えてください。 windowsでは、マイコンピューターのプロパティで設定した環境変数がパソコンのログイン時に読まれると思うのですが、mac(OSX Leopard)では、インストール後の初期段階では、どこのディレクトリにある、どのファイルの内容を読み込んでいるのでしょうか? /etcのbashrcファイルの内容を読み込むと思っていたのですが、何の環境変数も設定されていないようです。 気になったので、ご質問させていただきました。 どなたかご教示ください。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • 環境変数

    コマンドプロンプト初心者です。 以前、ちょっといじっていたときに どうやら環境変数のpathを全て消してしまいました。 恐らくそれでコマンドが使えなくなったのかなと。 ipconfigとかも使えなくなって、困っているのですが、 これを復活させる方を教えてください。 よろしくお願いします。

  • 「環境変数を作成する方法」がどうしても分かりません。教えてください

    お世話になっております。 以前から環境変数について勉強しているのですが、文字で理解はできても実感がわきません。 もっと言えば、「分かりやすい言葉で噛み砕けていません」そして「何をすれば設定を変えられるのか?という「実感レベル」に落とし込めていません」。 ちゃんと理解できていないので、的を射ていない質問かもしれませんが、教えていただけないでしょうか? (私の環境変数に対する認識は→「プログラムを動作させるためのプロセスを定義するための仕組み」と理解しておりますが、間違っていたら申し訳ございませんがご指摘ください) 前は、ログオンした時間がわかるバッチファイルを作ったのですが、それ以上の情報を引き出すには環境変数をいじらなければならないようです。 今回で言えば、ログオンした時にユーザ名も取得できる方法を知りたいと思っております。 ヒントをいただければ幸いです。 ※「~を使う」だけではなく、既存の環境変数など例に用いて仕組み(メカニズム)も解説いただけるとわがままではありますが、非常に嬉しいです。 贅沢申して恐れ入りますが、宜しくお願い致します。

このQ&Aのポイント
  • らくちんプリントver1.0.21で作成したデータ.rp3が開けない
  • エレコム株式会社の製品であるらくちんプリントver1.0.21で作成したデータ.rp3が開けなくなってしまいました
  • エレコム株式会社の製品らくちんプリントver1.0.21で作成したデータ.rp3が開けなくなった場合の対処方法について教えてください
回答を見る