#68 Article 5982 Posted at 1995/01/19 22:32:52 by 夢中ゆわ (MAP2717) [DAYTONA]

Subject: Re: Re: しゃれえぐぜって何? /5964 /5963

スレッド関係
元スレッド #68/5963 — 「しゃれえぐぜって何?」 1995/01/17 20:08:35 · じょん川西 · MAP2337
「くわしい環境がわからないと答えられません.」 と言われそうな質問なんですが・・・。 WindousNT3.5で、MicroSoft-Wordを立ちあげようとしたら +-+---------------------------------------------------------------------+-+ +-+----------------------------------------------------------…
     返信元 #68/5964 — 「Re: しゃれえぐぜって何? /5963」 1995/01/18 00:48:36 · よしゆき · MAP3848
> と表示してしまいました。SHARE.EXEとは何なのでしょうか? もっと詳しい方が書いておられそうですが・・・ MSDOSのコマンドで、一つのデータファイルを複数のプログラム(又はユーザー)から 同時にアクセスしようとした場合、最初につばつけたプログラムにだけアクセス権を 与えるように監視するコマンドです。(よね?>詳しい方) MS WINDOWS3.1でも、アプローチとかのネットワーク対応型データベースではこれを いれないと立ち上…
         現在 #68/5982 — 「Re: Re: しゃれえぐぜって何? /5964 /5963」 1995/01/19 22:32:52 · 夢中ゆわ · MAP2717
スレッド全体を見やすく表示
シェアエグゼですね。

MSDOSには
「あるファイルが複数のプログラムからアクセスされる」のを防ぐために
「ファイルのロック/アンロック」という事をする事ができます。

Wordなんかで「このファイルは他が使っています」とかのワーニングは
これのせいですね。1つのファイルを複数のユーザが書き換えてしまうと
先にセーブしたものが、後からセーブしたものに塗り変えられてしまうからです。

こういう場合(あるいはNET等)、多くは「参照のみ可(ライト不可)」に
しているようです。(ライト権があるのはあくまで最初にロックしたものだけ)

他のプログラムからロックされた領域をアクセスしようとすると
3回試行した後、失敗するとint24の致命エラーが発生します。

シェアエグゼは、このロック領域を確保する為のコマンドです。
組み込んだだけでは、ファイルはロックされません。

SHARE.EXE [/F:byte][/L:rock]

byte:ロック領域をバイト単位で指定
rock:一度にロック出来るファイルの数

ですから、ロック/アンロックするようなプログラムを実行する場合には
予めコマンドラインからshare.exeを実行しなくてはいけないのです。

面倒ですね(笑)最初からDOSが起動時に確保すればいいのにね。
けれども昔はNETやらマルチタスクやらの概念が無かったので
しょうがないところでしょうか。

ライト不可とかリードライト不可なんかは、そのファイルのオープン時(FUNC 3DH)に
指定出来ます。

※おまけ
ファイルの実際のロック/アンロックは、DOSではFUNC 5CHで行ないます。
この時ファイル単位でなく、ファイルのどこからどこまでロックするという
細かい指定もできます。又、FUNC 45H、FUNC 46H(ハンドルの2重化)は
ロック領域をアクセスできるようです。

#MAP2717 夢中ゆわ