Reading From and Writing to Files

An application reads from and writes to a file by using the ReadFile, ReadFileEx, WriteFile, and WriteFileEx functions. These functions require a handle to a file to be opened for reading and writing, respectively. They read and write a specified number of bytes at the location indicated by the file pointer. The data is read and written exactly as specified; the functions do not format the data.

When the file pointer reaches the end of a file and the application attempts to read from the file, no error occurs, but no bytes are read. Therefore, reading zero bytes without an error means the application has reached the end of the file. Writing zero bytes does nothing.

For more information, see the following topics.

In this section


Positioning a File Pointer

Windows uses a file pointer to keep track of bytes read or written.

Reading From or Writing To Files Using a Scatter-Gather Scheme

Describes a scatter-gather scheme for reading or writing noncontiguous chunks of data in one operation.

Flushing System-Buffered I/O Data to Disk

Windows stores the data in file read and write operations in system-maintained data buffers to optimize disk performance.

Truncating or Extending Files

An application can truncate or extend a file by calling SetEndOfFile.