Microsoft KB Archive/11988

{|
 * width="100%"|

Windows File I/O vs. C Run-time File I/O

 * }

Q11988

-

The information in this article applies to:


 * Microsoft Windows Software Development Kit (SDK) versions 3.0, 3.1

-

SUMMARY
The following functions are provided by the Microsoft C Run-time Library (CRT) and the Windows API to create a file:

  Return Type    API or Function   Category HFILE         OpenFile          Windows API HFILE         _lopen/_lcreat    Windows API int           _open/_creat      CRT FILE *        fopen             CRT These return types (HFILE, int, and FILE *) are not compatible, so they can not be used in a function which is expecting the other type. The HFILEs are handles to operating system files (MS-DOS file handles), the ints are CRT file handles, and the FILE *s are pointers to structures which represent a CRT stream.

For files opened with OpenFile, _lopen, and _lcreat, the common file manipuluation routines that you should use are:

_lclose

_llseek

_lread

_lwrite For files opened with _open and _creat, the common file manipulation routines that you should use are:

_close

_lseek

_read

_write For files opened with fopen, the common file manipulation routines that you should use are:

fclose

fseek

fread

fwrite For other input and output functions, please check the documentation for information on whether they are intended for use with MS-DOS handles (HFILE), streams (FILE *), or low-level I/O (int).

MORE INFORMATION
An application should use the OpenFile API any time an MS-DOS file handle is required.

The open functions do not necessarily open a file in binary raw mode; the application is required to set the binary attribute explicitly. The OpenFile function automatically performs this step.

If the filename parameter specifies only a filename and extension, the open functions search for a matching file only in the current directory.

In Windows, the OpenFile API creates an MS-DOS file handle through which an application can access Windows-specific files. OpenFile initially opens the file in binary raw mode by performing an MS-DOS Interrupt 21h Function 3Dh. If the lpFileName parameter specifies only a filename and an extension, OpenFile searches for a matching file in the following directories:


 * The current directory.
 * The Windows directory. The GetWindowsDirectory API returns the path to this directory.
 * The Windows system directory . The GetSystemDirectory API returns the path to this directory.
 * The directories listed in the PATH environment variable.

Additional query words: 3.00 3.10

Keywords : kb16bitonly

Issue type :

Technology : kbAudDeveloper kbWin3xSearch kbSDKSearch kbWinSDKSearch kbWinSDK300 kbWinSDK310