File types

In addition to conventional files, such as sequential files and partitioned data sets, the z/OS® XL C/C++ runtime library supports the following file types:
Virtual Storage Access Method (VSAM) data sets
z/OS XL C/C++ has native support for the following VSAM data sets:
  • Key-Sequenced Data Sets (KSDS). Use KSDS to access a record through a key within the record. A key is one or more consecutive characters that are taken from a data record that identifies the record.
  • Entry-Sequenced Data Sets (ESDS). Use ESDS to access data in the order it was created (or in reverse order).
  • Relative-Record Data Sets (RRDS). Use RRDS for data in which each item has a particular number (for example, a telephone system where a record is associated with each telephone number).
For more information on how to perform I/O operations on these VSAM file types, see "Performing VSAM I/O operations" in z/OS XL C/C++ Programming Guide.
Hierarchical File System files
z/OS XL C/C++ recognizes Hierarchical File System (HFS) file names. The name specified on the fopen() or freopen() call has to conform to certain rules. See "Opening Files" in z/OS XL C/C++ Programming Guide for the details of these rules. You can create regular HFS files, special character HFS files, or FIFO HFS files. You can also create links or directories.
Note: As of z/OS V1R7, the Hierarchical File System (HFS) functionality has been stabilized and z/OS File System (zFS) is the strategic UNIX System Services file system for z/OS.
Memory files
Memory files are temporary files that reside in memory. For improved performance, you can direct input and output to memory files rather than to devices. Since memory files reside in main storage and only exist while the program is executing, you primarily use them as work files. You can access memory files across load modules through calls to non-POSIX system() and C fetch(); they exist for the life of the root program. Standard streams can be redirected to memory files on a non-POSIX system() call using command line redirection.
IBM® Hiperspace™ expanded storage
Large memory files can be placed in Hiperspace expanded storage to free up some of your home address space for other uses. Hiperspace expanded storage or high performance space is a range of up to 2 GB of contiguous virtual storage space. A program can use this storage as a buffer (1 gigabyte(GB) = 230 bytes).
z/OS File System
z/OS File System (zFS) is a z/OS UNIX file system that can be used in addition to the Hierarchical File System (HFS). zFS may provide performance gains in accessing files that are frequently accessed and updated. The I/O functions in the z/OS XL C/C++ runtime library support zFS.