PRB: BINDMSF Error: Cannot Create Binder file \2 (125471)



The information in this article applies to:

  • Microsoft FORTRAN PowerStation for MS-DOS 1.0
  • Microsoft FORTRAN PowerStation for MS-DOS 1.0a

This article was previously published under Q125471

SYMPTOMS

If you build a program on a network drive without having write privilege to the root drive, the following error is generated by BINDMSF after linking:
Fatal error: Cannot create binder temporary file "\2"
The .EXE file created will not run under MS-DOS or Windows.

CAUSE

After linking a FORTRAN PowerStation application, the executable must be bound by BINDMSF. BINDMSF creates a temporary file in the root of the directory containing the .EXE file. If this directory is write protected, the file can't be created, and the executable will not be bound to the DOS extender.

Another possibility is that the root directory is full or contains the maximum number of files allowed.

NOTE: This does not apply to FORTRAN PowerStation 32 which does not use BINDMSF.

RESOLUTION

There are three ways to work around the problem of a write protected drive:

  • Use a local drive when building programs. -or-

  • Use the Novell MAP ROOT command to map the directory in which the project is installed to be the root directory for the project drive. See below for more information on mapping a directory as the root for a drive. -or-

  • Have the system administrator grant to the user the following rights for the root directory of the drive that contains the .BSC file:
       Right         Meaning
       ----------------------------------------------------------
       Create        May create subdirectories and files
       Erase         May erase directory and files
       File Scan     May scan for files
       Read          May read from files
       Write         May write to files

MORE INFORMATION

The Microsoft binder utility BINSMSF attempts to create a temporary file in the root directory of the drive that contains a project -- or the root directory of the current directory when using the command line tools like FL32 to build programs. This file is named '\2'. For example, if your file server is mapped to drive R:, and you build a program in the R:\WORK\PROJECT directory, the BINDMSF attempts to create the file named '\2' in R:\ directory.

If the user does not have the necessary rights in the server root directory, the binder cannot create the temporary file, and it generates the message above. These rights include the ability to search for, create, read from, and write to files. If the user does not have the right to erase files from the root directory, the binder may be able to successfully open the file once. However, because the binder cannot delete the file in the root directory, subsequent attempts to open the temporary file for writing fail.

To determine the rights a user has in a particular directory, use the Novell RIGHTS command. To determine what rights a user has in the current directory, enter the following at the MS-DOS command prompt:

RIGHTS

The RIGHTS command generates output similar to this:
   SERVER_NAME\SYS:WORK\PROJECT
   Your effective rights for this directory are [ RWC    ]
      May Read from File.                        (R)
      May Write to File.                         (W)
      May Create Subdirectories and Files.       (C)
				

Workaround: Mapping the Directory that Contains the Project

One way to work around insufficient access rights in the root directory involves mapping the directory that contains the project as the root directory for the project drive. The Novell MAP ROOT command is provided for this purpose. For example, to map the WORK\PROJECT directory as the root of drive R:, enter the following at the MS-DOS command prompt:
   MAP ROOT R:=SYS:\WORK\PROJECT
				
The "SYS:" in the command line represents the volume on the file server on which the project is installed. Novell volumes are similar to MS-DOS disk partitions (C:, D:, and so on). To determine the correct volume, examine the output of the RIGHTS command, as shown above.

After you enter the MAP ROOT command shown above, Novell uses the WORK\PROJECT directory as the root directory for drive R:. In other words, when the current directory is R:\, the WORK\PROJECT directory on the SYS: volume is actually the current directory. As long as the project is opened in the Visual Workbench from the R: drive, when the binder creates its temporary file in the root directory of the R: drive, it actually creates the file in the WORK\PROJECT directory on the SYS: volume. If the user has the necessary rights in this directory, the file creation and deletion operations succeed. Because the project directory contains the source code files, the user should have the right to search for, create, read from, write two, and erase files in that directory.

You can also define a drive mapping as a root drive by using the Microsoft Windows File Manager in Microsoft Windows for Workgroups version 3.1. To do this, the Windows for Workgroups installation must include Novell NetWare support. To create a drive mapping in File Manager, perform these 11 steps:

  1. Start the Windows File Manager.
  2. Connect to a network drive by clicking the network connection button on the toolbar or by choosing Connect Network Drive from the Disk menu.
  3. Select the NetWare button in the Connect Network Drive dialog box.
  4. File Manager displays its Network-Drive Connections dialog box that lists the current data drive mappings in effect and lists the drive letters that are available to be mapped. Select the drive letter to use for the root mapping. Then choose the Browse button.
  5. File Manager displays its Browse Connections dialog box that lists the current Novell file servers and volumes available to map to a drive letter. Choose the appropriate file server/volume connection in the Servers/Volumes list box. In the previous example, the server/volume would be SERVER_NAME/SYS:.
  6. File Manager displays a list of the directories that can be mapped to on the selected server/volume. Choose the directory that contains the project. The edit control at the top of the Browse Connections dialog box displays the full path to the project directory, including the server/volume. For example, using the previous example, the edit control displays:
          SERVER_NAME/SYS:WORK/PROJECT
  7. Choose OK to close the Browse Connections dialog box. The focus returns to the Network-Drive Connections dialog box.
  8. Choose the Map button. File Manager displays the selected server/volume and directory next to the selected drive letter in the Data drives list box.
  9. Choose the Set Root button. File Manager displays a message box asking for confirmation to assign the root to the current path.
  10. Choose OK to dismiss the message box.
  11. Choose Close to dismiss the Network-Drive Connections dialog box.
File Manager maps the drive letter chosen in Step 4 above to the specified subdirectory on the specified server/volume. NetWare treats the specified subdirectory as the root directory for that drive letter. To avoid the situation in which the user has insufficient rights in the root directory, use this drive letter when you open the project in the Visual Workbench, or build from the command line.

REFERENCES

For more information on granting rights and mapping drives on a NetWare network, please refer to your Novell NetWare documentation.

Modification Type:MajorLast Reviewed:10/2/2003
Keywords:KB125471 kbAudDeveloper