PRB: File Handles Cannot Be Shared Between Programs or DLLs

ID: Q46524


The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK) versions 3.0, 3.1


SYMPTOMS

Assume that there are two applications, A and B. Application A calls a Dynamic-Link Library (DLL) to open a file. The file pointer (FILE *pFile) is stored on the data segment of the DLL. Application A then calls a function in the DLL to read the record "n" of this file properly. However, if Application B calls the same function in the DLL to read the same record, the record appears as random characters.


RESOLUTION

File handles cannot be shared between applications or DLLs. Each application has its own file handle table. When an fopen() call is made, a file is taken out of the application's program segment prefix (PSP). For two separate applications to use the same file, each application must make its own fopen() call, file I/O calls, and fclose() call.

Additional query words: 3.00 no32bi 3.10

Keywords : kb16bitonly
Version : WINDOWS:3.0,3.1
Platform : WINDOWS
Issue type :


Last Reviewed: November 4, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.