cd_pvd, cd_cpvd - reads the Primary Volume Descriptor from
a CD-ROM
#include <sys/cdrom.h>
int cd_pvd(
char *path,
struct iso9660_pvd *pvd ); int cd_cpvd(
char *path,
char *addr );
Rock Ridge and X/Open Extensions to the CDFS library
(libcdrom.so, libcdrom.a)
Points to a pathname that names a file or directory within
a CD-ROM File System hierarchy, or to a block-special file
for a CD-ROM File System. Points to the iso9660_pvd
structure that holds the contents of the Primary Volume
Descriptor from the CD-ROM. The iso9660_pvd structure is
defined in cdfs/xcdr.h, an include file that is called
into sys/cdrom.h Points to the address to which the Primary
Volume Descriptor on the CD-ROM is copied.
The function cd_pvd() fills the *pvd structure with the
contents of the Primary Volume Descriptor from the CD-ROM.
To execute this function successfully, the user must have
read or execute permission for the file or directory
pointed to by *path
The function cd_cpvd() copies the complete Primary Volume
Descriptor that is recorded on the CD-ROM to the address
pointed to by *addr. The user must allocate {CD_PVDLEN}
bytes for the Primary Volume Descriptor. The variable
{CD_PVDLEN} is defined in cdfs/xcdr.h, an include file
that is called into sys/cdrom.h.
If successful, the value zero is returned. If unsuccessful,
the integer -1 is returned and errno is set to indicate
the error.
The function will fail if: Search permission is denied for
a directory in *path or read permission is denied for the
file, directory, or block special file pointed to by
*path. The address of *path or *pvd is invalid. A signal
was caught during execution of the function. The argument
*path points to a file or directory that is not within the
CD-ROM file hierarchy. The named file is a block special
file and the CD-ROM is not recorded according to the ISO
9660 standard. {OPEN_MAX} file descriptors are currently
open in the calling process.
[Tru64 UNIX] Either the OPEN_MAX value or the perprocess
soft descriptor limit is checked. The
length of the *path string exceeds {PATH_MAX}, or a
pathname component is longer than {NAME_MAX} while
{_POSIX_NO_TRUNC} is in effect. The system file
table is full. A component of *path does not exist
or the *path argument points to an empty string. A
component of the *path prefix is not a directory.
The CD-ROM is not in the drive or a read error
occurred. The named file is a block-special file
and the device associated with the file does not
exist.
Files: cdfs/xcdr.h, sys/cdrom.h
cd_pvd(3)
[ Back ] |