Summary of VSAM record I/O operations

Table 1. Summary of VSAM record I/O operations
  KSDS ESDS RRDS PATH
fopen(), freopen() rb, rb+, ab, ab+, wb, wb+ (empty cluster or reuse specified for wb & wb+) rb, rb+, ab, ab+, wb, wb+ (empty cluster or reuse specified for wb & wb+) rb, rb+, ab, ab+, wb, wb+ (empty cluster or reuse specified for wb & wb+) rb, rb+, ab, ab+
fwrite(), fwrite_unlocked() rb+, ab, ab+, wb, wb+ rb+, ab, ab+, wb, wb+ rb+, ab, ab+, wb, wb+ rb+, ab, ab+
fread(), fread_unlocked() rb, rb+, ab+, wb+ rb, rb+, ab+, wb+ rb, rb+, ab+, wb+ rb, rb+, ab+
ftell(), ftell_unlocked() rb, rb+, ab, ab+, wb, wb+ (see note 1)   rb, rb+, ab, ab+, wb, wb+  
ftello(), ftello_unlocked() rb, rb+, ab, ab+, wb, wb+ (see note 1)   rb, rb+, ab, ab+, wb, wb+  
fseek(), fseek_unlocked() rb, rb+, ab, ab+, wb, wb+ (see note 1) rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+  
fseeko(), fseeko_unlocked() rb, rb+, ab, ab+, wb, wb+ (see note 1) rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+  
fgetpos(), fgetpos_unlocked() rb, rb+, ab, ab+, wb, wb+ (see note 2) rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+  
fsetpos(), fsetpos_unlocked() rb, rb+, ab, ab+, wb, wb+ (see note 2) rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+  
flocate(), flocate_unlocked() rb, rb+, ab+, wb+ rb, rb+, ab+, wb+ rb, rb+, ab+, wb+ rb, rb+, ab+
rewind(), rewind_unlocked() rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+
fflush(), fflush_unlocked() rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+
fdelrec(), fdelrec_unlocked() rb+, ab+, wb+   rb+, ab+, wb+ rb+, ab+ (not ESDS)
fupdate(), fupdate_unlocked() rb+, ab+, wb+ rb+, ab+, wb+ rb+, ab+, wb+ rb+, ab+
ferror(), ferror_unlocked() rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+
feof(), feof_unlocked() rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+
clearerr(), clearerr_unlocked() rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+
fclose() rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+
fldata(), fldata_unlocked() rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+, wb, wb+ rb, rb+, ab, ab+
Notes:
  1. The saved position is based on the relative position of the record within the data set. Subsequent insertions or deletions may invalidate the saved position.
  2. The saved position is based on the RBA of the record. Subsequent insertions, deletions or updates may invalidate the saved position.