# OPEN: BUFFERED Specifier

The BUFFERED specifier indicates run-time library behavior for READ and WRITE operations. Buffering of input records only applies to variable length, unformatted records. This specifier takes the following form:

BUFFERED = bf

bf | Is a scalar default character expression that evaluates to one of the following values:
'NO' | For WRITE operations: Requests that the run-time library send output data to the file system after each operation. For READ operations on variable length, unformatted files: Requests that the run-time library transfer input data directly from disk to user variables for each operation.
'YES' | Requests that the run-time library accumulate data in its internal buffer, possibly across several READ or WRITE operations, before the data is transferred to, or from, the file system. Buffering may improve run-time performance for output-intensive applications.

The default is 'NO' for buffering output. The default is also 'NO' when reading variable length, unformatted records whose length exceeds that of the block size specified for the file.

If BUFFERED='YES' is specified, the request may or may not be honored, depending on the device and other file or connection characteristics.

For direct access, you should specify BUFFERED='YES', although using direct-access I/O to a network file system may be much slower.

If both BLOCKSIZE and BUFFERCOUNT for OPEN have been specified with positive values, their product determines the size in bytes of the buffer for that I/O unit. Otherwise, the default size of the internal buffer is 8 KB (8192 bytes).

### Note

On Windows systems, the default size of the internal buffer is 1024 bytes if compiler option fpscomp general is used.

The internal buffer will grow to hold the largest single record but will never shrink.

Parent topic: OPEN Statement Specifiers

## See Also

Rules for Unformatted Sequential READ Statements