KB#00364-Error 0, TCB(10)=-33, when opening a file twice via different names or cases
Error 0, TCB(10)=-33, when opening a file twice via different names or cases
When PRO/5 asks the DOS/Windows/Novell operating system to open up the second file, the operating system doesn't let PRO/5 know that it's really the same file (as does under other operating systems). Therefore, PRO/5 acts as if two users are trying to open the same file, when they each are running a single-user version. This results in the lock violation error. Releases prior to 1.04 exhibit this behavior.
With the release of 1.04, PRO/5 has a new setopts bit that will affect its behavior. Here's how it's documented in the readme:
* On single-user Visual PRO/5 products an !ERROR=0 occurs when a file open attempt is made to a file that was already opened on another channel, but the path to the file was different. For example:
The OPEN(2) will fail with an !ERROR=0. This has been corrected in Revision 1.04 through the use of a new SETOPTS bit.
The new bit is Byte 7 Bit 1. When this bit is set, Visual PRO/5 behaves in the same manner as the PRO/5 UNIX ports. For example:
share the same FCB which prevents an extra user slot being taken on the file and the !ERROR=0 for single user product. The FID() information is that of channel 1 in this case. The file name reported at offset 9 in FID(2) is exactly the same as that of FID(1) (i.e. "file"). Had channel 2 been open first the file name info in the FID(1) would be "./file".
As a result of this correction, multiple channels to the same opened file use a single FCB.
Here's an example in action:
!ERROR=0 (Busy or not ready (tcb(10)=-33))
Last Modified: 07/27/1998 Product: Visual PRO/5 Operating System: MS Dos WindowsError Number: 0 OS Error: 33
BASIS structures five components of their technology into the BBx Generations.