APPNOTE: EXEC Function Appnote Available with FORTRAN 5.x

ID: Q75223

The information in this article applies to:

SUMMARY

The application note titled "EXEC Function for FORTRAN" contains a function similar to the SPAWNLP function. The SPAWNLP function, included in the Microsoft FORTRAN 5.0 and 5.1 packages, suspends program execution and spawns a child process while leaving the parent process in memory. When this child process terminates, control returns to the parent process. On the other hand, the EXEC function terminates the parent process, taking the parent process out of memory, and then spawns the child process. Upon termination of the child process, the program is completed.

This application note "EXEC Function for FORTRAN" can be obtained by calling Microsoft Product Support Services.

This application note is also available in the Microsoft Software Library.

MORE INFORMATION

The following file is available for download from the Microsoft Software Library:

 ~ HF0221.exe (size: 47469 bytes) 

For more information about downloading files from the Microsoft Software Library, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q119591
   TITLE     : How to Obtain Microsoft Support Files from Online Services

The following is the text of the application note:

                    HF0221: FORTRAN EXEC Function
                                                   Revision Date: 8/91
 --------------------------------------------------------------------
| INFORMATION PROVIDED IN THIS DOCUMENT AND ANY SOFTWARE THAT MAY    |
| ACCOMPANY THIS DOCUMENT (collectively referred to as an            |
| Application Note) IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY      |
| KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO    |
| THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A     |
| PARTICULAR PURPOSE. The user assumes the entire risk as to the     |
| accuracy and the use of this Application Note. This Application    |
| Note may be copied and distributed subject to the following        |
| conditions: 1) All text must be copied without modification and    |
| all pages must be included; 2) If software is included, all files  |
| on the disk(s) must be copied without modification [the MS-DOS(R)  |
| utility DISKCOPY is appropriate for this purpose]; 3) All          |
| components of this Application Note must be distributed together;  |
| and 4) This Application Note may not be distributed for profit.    |
|                                                                    |
| Copyright 1991 Microsoft Corporation. All Rights Reserved.         |
| Microsoft, MS-DOS, and the Microsoft logo are registered           |
| trademarks and Windows is a trademark of Microsoft Corporation.    |
 --------------------------------------------------------------------

Simulating the P_OVERLAY Function of _spawnlp with the Microsoft FORTRAN Optimizing Compiler Versions 4.0, 4.01, 4.1, 5.0, and 5.1

Versions 4.0, 4.01, 4.1, 5.0, and 5.1 of the Microsoft FORTRAN Optimizing Compiler do not support the option within the _spawnlp function that allows a second user program to completely overwrite the space used by the program that initiates it. The programs supplied with this application note use a slightly different mechanism to provide this missing functionality. The EXEC function works under the DOS operating system only.

The following files are provided on the FORTRAN 4.0, 4.01, 4.1, 5.0, 5.1 EXEC Function disk included with this application note:

   Filename            Description of File
   --------            -------------------

   README.DOC          Text of application note.

   EXEC.INC            A FORTRAN INTERFACE file that must be included
                       in every source file calling EXEC.

   LV40EXEC.LIB        Large memory model library for version 4.0 and
                       4.01 containing the routines necessary to
                       perform an EXEC.

   MV40EXEC.LIB        Medium memory model library for version 4.0 and
                       4.01 containing the routines necessary to
                       perform an EXEC.

   LV41EXEC.LIB        Large memory model library for versions 4.1 and
                       5.0 containing the routines necessary to
                       perform an EXEC.

   MV41EXEC.LIB        Medium memory model library for versions 4.1
                       and 5.0 containing the routines necessary to
                       perform an EXEC.

   LV51EXEC.LIB        Large memory model library for version 5.1
                       containing the routines necessary to perform an
                       EXEC.

   MV51EXEC.LIB        Medium memory model library for version 5.1
                       containing the routines necessary to perform an
                       EXEC.

   TEST1.FOR           Program to test an EXEC. It is more than
                       300,000 bytes in size and will EXEC the TEST2
                       program, which is of similar size. The
                       intention is to show that the two programs,
                       TEST1.FOR and EST2.FOR, which cannot fit in
                       memory at the same time, can be executed
                       individually.

   TEST2.FOR           Program to be executed by TEST1.

Link the program that calls EXEC (TEST1 in this case) with the appropriate library listed above. For example, when using FORTRAN 5.1 for the large memory model, the compile line should look as follows:

   fl test1.for LV51EXEC.LIB

This will compile TEST1.FOR and link it with the FORTRAN run-time library in addition to the EXEC function library specified.

NOTE: TEST1 and TEST2 are completely independent of each other. They can even be compiled with different memory models.

Additional query words:

Keywords          : kbfile
Platform          : MS-DOS

Last Reviewed: December 10, 1998