あなたの習慣について教えてください!!

家庭用カテゴリーに投稿するレベルの基本的なことなのですが、技術者の方に詳説して頂きたくて本カテゴリーに投稿します。

以前からの疑問なのですが、「環境変数」って一体何なのでしょうか?プログラミングでも出て来ましたし、環境設定でも出て来ます。

難しい用語が入っていても結構ですので、詳しく教えて頂けますでしょうか。

よろしくお願いします。

A 回答 (4件)

環境変数とは、環境によって変わる値のことです。



環境とは、コンピュータが現在おかれている状態のことで、具体的には、
コンピュータの機種、置かれた場所、タイムゾーン、コンピュータの名前、OSがインストールされたディレクトリ名、現在ログオンしているユーザ名、プログラムをインストールしたディレクトリ名、
などが含まれます。これ以外にもあるでしょう。
各項目について、現状の値をOSが維持・保管しています。それが環境変数です。

環境変数を利用するのは、プログラムです。
プログラムは環境変数を読み取ることで、
実行されるコンピュータの現状(環境)を知ることができます。

プログラムを作成するプログラマは、環境変数を読み取っていろいろな環境で動作するように、プログラムを作ります。

OSには、他にもファイルやレジストリなど、環境の情報を保管しておく仕組みが複数あることが多いです。
保管しておく情報量が多かったり、特定のプログラムでしか利用されない情報である場合は、ファイルやレジストリに情報を格納します。
また、次回起動時に情報を引き継ぎたい場合もファイルやレジストリなど、消えない形で残します。

環境変数は、さまざまなプログラムが共通に参照するような、一般的な環境に関する情報を、メモリ上に格納する仕組みとも言えます。
だから、特に対策を講じない限り、再起動すれば消えてしまいます。
毎回同じ値を環境変数に設定したい場合は、起動時に読み込まれるファイルの中にその設定情報を格納しておくことで、OSが読み込み、環境変数に反映します。

Windows PCであれば、コマンドプロンプトで、
set
を実行すれば、現在の環境変数の一覧とその値が表示されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/08 10:41

『環境変数とは何か?』を考えるより、『何故?環境変数が存在するのか?』から、考えるとわかりやすいと思います。



"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")があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/08 10:38

変数はわかりますよね?


では環境とは、今起動しているOSの情報です

DOS窓(コマンドプロンプト)でSET打ってください
色々でますよね

たとえば、今ログインしているユーザ名を取得したいのなら、USERNAMEという環境変数を見ればいいんです

なぜ、環境変数があるかというと、ログインユーザって無限にあるじゃないですか
(nPCにnログイン名)
でも、USERNAMEを見ればいいんです

簡単すぎるかもしれないけど、こんなものです
環境変数は色々あるので、全部調べたら面白いと思いま
すけど

環境変数の歴史まで知りたいのなら「UNIX」「MS-DOS」というOSを勉強してくださいね
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/08 10:35
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/08 10:27

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