CGI-BBS > CGI > Perl > Perlについて以前のレスを確認したい。


カレッヂ
カレッヂ


質問者 トチ  投稿日 12/18(水) 15:25:17
ネット上での複数ユーザからの実行というレス
http://www.rescue.ne.jp/CGI-BBS/cgi/perl/20011002023309.shtml
をみていたのですが、
「同じプログラムを同時に実行されることは当然ありますが、
プロセスごとにコピーを作り、それぞれ別のものとして実行されます。」
ということでした。
この場合、ただ変数だけでなく、CGIとして動作する場合に
環境変数も書き換えられることはないというわけですよね?

「ただし、データファイルのように複数のプロセスが共通して使用するものに関しては、
実行中に他のプロセスから書き換えられる可能性はあります。」
先に質問した内容を受けると、同じ外部プログラムを呼び出し、
そこから出力されるファイルについては、
書き換えられてしまうということですよね?

プロバイダ参照:
サーバのOS:WINサーバ
パソコンのOS:WinNT系
エディタ:notepad
FTPソフト:
サーバ移転:していない
改造:(未選択)
CGI習熟度:(未選択)

回答者 しあわせのツボ  [削除]  投稿日 12/18(水) 20:39:41
その通りです。

乱暴に言うと、プログラムは設計図であって、実体ではありません。
なので、実際に使う(実行する)には、設計図(プログラム)をもとに
現物を作る必要がありますから、同時に起動したとしても
それは「中身は同じだけど別物」になります。
たとえばAさんとBさんが「同じ(設計図をもとに作った)もの」を持っていたとしても、
それぞれは別個に存在するものですから、AさんもBさんもそれを自由に使えますし、
またAさんが自分のに落書きをしたからといって、
それがBさんの「同じもの」に影響したりはしませんよね。

しかしファイルはそれ自身が実体ですから、同じファイルを使う限りは
AさんとBさんが「同じ(ひとつの)もの」を共用するようなものなので、
Aさんがシールを貼ったらBさんが使う時にもシールが貼ってありますし、
同時に使おうとすればけんかになります。
質問者 トチ  [削除]  投稿日 12/19(木) 12:37:03
わかりやすい説明、ありがとうございます。
こういった、ふとした質問に丁寧にかつ迅速に
お答え頂いてうれしい限りです。
度々お世話になるとは思いますが、
よろしくお願いします。

このページは終了したので返信(回答)は書きこめません

Web裏技