Multivolume data sets

z/OS® XL C/C++ supports data sets that span more than one volume of DASD or tape. You can open multivolume DASD data sets for read (r,rb), write (w,wb), update (r+,rb+,w+,wb+), or append (a,a+,ab,ab+) by dsname and ddname. Multivolume data sets can be extended only in read/update mode (r+,rb+).

The repositioning functions are available when you have opened a multivolume data set for r,r+,rb,rb+,w+,wb+,a+,ab+. Repositioning multivolume data sets opened for w,wb,a,ab is not allowed because it would be meaningless. For multivolume data sets opened for write, calling rewind() has no effect; calls to any of the other repositioning functions fail.

Here is an example of a multivolume data set declaration:
   //MYDD   DD  DSNAME=TEST.TWO,DISP=(NEW,CATLG),
   //        VOLUME=(,,,3,SER=(333001,333002,333003)),
   //        SPACE=(TRK,(9,10)),UNIT=(3390,P)

This creates a data set that may span up to three volumes. For more information about the VOLUME parameter on DD statements, refer to z/OS MVS JCL User's Guide.

Notes:
  1. Simultaneous readers (files that can support sharing by a writer and one or more readers) are not supported for multivolume data sets.
  2. Concatenated and multivolume data sets only tolerate single buffering mode.