#68 Article 5982 Posted at 1995/01/19 22:32:52 by 夢中ゆわ (MAP2717) [DAYTONA]
Subject: Re: Re: しゃれえぐぜって何? /5964 /5963
シェアエグゼですね。 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 夢中ゆわ