cd_svd(3X)
cd_svd, cd_csvd --
read CD-ROM Supplementary Volume Descriptors (SVD)
Synopsis
   cc [flag . . . ] file . . . -lcdfs -lgen [library] . . .
   
   #include <sys/cdrom.h>
   
   int cd_svd(const char *path, struct iso9660_svd *svd, uint_t *svdloc);
   
   int cd_cpvd(const char *path, char *svd, uint_t *svdloc);
Description
The cd_svd and cd_csvd routines fill the svd
structure with the contents of the first Supplementary Volume Descriptor,
if any exist on the CD-ROM starting from the sector number indicated by
svdloc, that is associated with a file or directory referred to
by path.
If svdloc is NULL or if *svdloc is zero, the starting
sector number is ISO_VD_LOC.
On a successful return if svdloc is defined (i.e., not NULL)
*svdloc is set to the sector number, on the CD-ROM, of the
returned SVD.
In order to read additional SVDs, if they exist on the CD-ROM, increment
*svdloc by one before subsequently calling cd_svd
or cd_csvd.
When there are no more SVDs on the CD-ROM media or image, -1 is returned
and errno is set to ENOMATCH.
The SVD contains information that the manufacturer recorded on the
CD-ROM disk, such as the location of the root directory, the
block size, volume name and expiration date.
Allocate CD_SVDLEN bytes for the SVD.
To read the SVD, you need read or execute permission for path.
Results are unpredictable if the initial value for the first call
to cd_svd or cd_csvd is not either zero or ISO_VD_LOC.
 path
- 
File or directory within the CD-ROM file system, or block special
file containing the CD-ROM file system.
 svd
- 
Pointer to the structure or character array where
the Supplementary Volume Descriptor is to be copied.
The character array must contain at least CD_SVDLEN bytes.
 svd
- 
On input if defined contains the starting sector number on the CD-ROM
media or image to start searching for a SVD.
On output if defined contains the sector number on the CD-ROM media or
image to where the returned SVD is located.
Return values
On success, cd_svd returns a value of zero and sets
svdloc, if defined, to the sector number of the returned SVD.
On failure, cd_svd returns a value of -1 and sets
errno to identify the error as follows:
 EACCES
- 
Search permission is denied on a component of path,
or read permission is denied on the file,
directory, or block special file that is pointed to by path.
 EFAULT
- 
Invalid address of psd or path.
 EINTR
- 
A signal was caught during the execution of the one of the functions.
 EINVAL
- 
path is a block special file and the CD-ROM is not recorded
according to the ISO-9660 standard.
 EINVAL
- 
path points to a file or directory that is outside the
CD-ROM file system.
 EIO
- 
A valid Volume Descriptor type was not detected.
May occur if svdloc was not initialized properly.
 EMFILE
- 
The maximum number of file descriptors are open.
 ENAMETOOLONG
- 
The size of path exceeds MAXPATHLEN,
or the component of a path name is longer than
MAXNAMELEN while _POSIX_NO_TRUNC is in effect.
 ENFILE
- 
The system file table is full.
 ENOENT
- 
path does not exist or the path argument points
to an empty string.
 ENOMATCH
- 
No more SVDs are detected on the CD-ROM media or image.
 ENOTDIR
- 
A component of path is not a directory.
 ENXIO
- 
path is a block special
file and the device associated with the special file does not exist.
 ENXIO
- 
The CD-ROM is not in the drive, or a read error occurred.
References
cdvd(1M),
cd_pvd(3X)
© 2004 The SCO Group, Inc.  All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004