These operations are available in both the traditional syntax and free-form syntax.
Most file operations can be used with both program described and externally described files.
When an externally described file is used with certain file operations, a record format name, rather than a file name, can be specified in factor 2. Thus, the processing operation code retrieves and/or positions the file at a record format of the specified type according to the rules of the calculation operation code used.
When the OVRDBF (override with data base file) command is used with the MBR (*ALL) parameter specified, the SETLL, SETGT and CHAIN operations only process the current open file member. For more information, refer to the see the IBM® i Information Center database and file systems category.
The CHAIN, READ, READC, READE, READP, and READPE operations may have a result data structure. For these operations, data is transferred directly between the file and the data structure, without processing the input specifications for the file. Thus, no record identifying or field indicators are set on as a result of an input operation to a data structure. If all input operations to the file have a result data structure, input specifications are not required.
The WRITE and UPDATE operations that specify a program described
file name in factor 2 must have a data structure name
specified in the result field. WRITE and UPDATE operations to an externally
described record may have a result data structure.
For these operations, data is transferred directly between data structure
and the file, without processing the output specifications for the file. If
all output operations to the file have a result data structure, output specifications
are not required. 
In some cases, data is transferred between the result data structure
and the input or output buffer as a whole, rather than individual
subfields being transferred separately.
Otherwise, alphanumeric and graphic subfields may require CCSID conversion when the data is transferred between the result data structure and the input or output buffer.
In all cases, data for subfields of types other than alphanumeric or graphic is transferred directly between the input or output buffer and the result data structure without regard for the data type.
See DATA(*CVT | *NOCVT) and CCSID(*EXACT | *NOEXACT).

If an input operation (CHAIN, EXFMT, READ, READC, READE, READP, READPE) does not retrieve a record because no record was found, because an error occurred in the operation, or because the last record was already retrieved (end of file), then no data is extracted and all fields in the program remain unchanged.
If you specify N as the operation extender of a CHAIN, READ, READE, READP, or READPE operation for an update disk file, a record is read without locking. If no operation extender is specified, the record is locked if the file is an update disk file.
You can pass a file as a parameter to a prototyped program or procedure. When you pass a file as a parameter, then any settings for the file that are defined using File specification keywords are in effect for all procedures that access the file. For example, if the EXTFILE keyword is specified with a variable parameter, and a called procedure opens the file, then the value of the caller's variable will be used to set the name of the file to be opened. If the called procedure needs to change or access those variables associated with the file through keywords, the calling procedure must pass the variables as a parameter.
The file-feedback built-in functions %EOF(filename), %EQUAL(filename), %FOUND(filename), %OPEN(filename), and %STATUS(filename) can be used in the called procedure program or to determine the current state of the file by specifying the name of the file parameter as the operand to the built-in function.
For more information on file parameters, see LIKEFILE(filename) and General File Considerations.