cd_xar(3)cd_xar(3)NAME
cd_xar, cd_cxar - reads the Extended Attribute Record for a CD-ROM file
or directory from the CD-ROM
SYNOPSIS
#include <sys/cdrom.h>
int cd_xar(
char *path,
int fsec,
struct iso9660_xar *xar,
int applen,
int esclen ); int cd_cxar(
char *path,
int fsec,
char *addr,
int xarlen );
LIBRARY
Rock Ridge and X/Open Extensions to the CDFS library (libcdrom.so,
libcdrom.a)
PARAMETERS
Points to the file or directory within the CD-ROM File System hierar‐
chy. Specifies the File Section of the file or directory pointed to by
*path, with the numbering beginning at one. If fsec is set to -1, the
last File Section of the named file or the only File Section of the
named directory is assumed. Points to the iso9660_xar structure that
holds the Extended Attribute Record (XAR) information. The iso9660_xar
structure is defined in cdfs/xcdr.h, an include file that is called
into sys/cdrom.h Used in conjunction with esclen, determines how many
bytes will be copied to the address specified by the *xar structure
member app_use. Used in conjunction with applen, determines how many
bytes will be copied to the address specified by the *xar structure
member esc_seq. Specifies the address where the function cd_cxar
copies the XAR that is recorded on the CD-ROM. Determines if part or
all of the XAR will be read.
DESCRIPTION
The cd_xar() routine fills the *xar structure with the contents of the
Extended Attribute Record (XAR) that is associated with the file or
directory pointed to by *path.
The total number of logical blocks of an XAR can be obtained by calling
the cd_drec() function. The Logical Block Size in bytes can be obtained
by calling the cd_pvd() function. The length of the fixed part of the
XAR is given by {CD_XARFIXL}. The variable {CD_XARFIXL} is defined in
cdfs/xcdr.h, an include file that is called into sys/cdrom.h.
The cd_cxar() function copies the XAR as recorded on the CD-ROM to the
address pointed to by *addr.
RETURN VALUES
If successful, the routines return the following values:
The cd_xar() function returns the number of bytes copied for the vari‐
able part of the XAR.
The cd_cxar() function returns the number of bytes copied. If unsuc‐
cessful, the integer -1 is returned and errno is set to indicate the
error.
ERRORS
The function will fail if: Search permission is denied for a directory
in *path or read permission is denied for the file or directory pointed
to by *path. The address of *path or *addr 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
value of fsec or xarlen is invalid. {OPEN_MAX} file descriptors are
currently open in the calling process.
[Tru64 UNIX] Either the OPEN_MAX value or the per-process 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. The Volume containing the File Section
indicated by fsec is not mounted. A component of *path does not
exist or the *path argument points to an empty string. The File
Section indicated by fsec has no XAR. A component of the *path
prefix is not a directory. The CD-ROM is not in the drive or a
read error occurred.
SEE ALSO
Functions: cd_drec(3)
Files: cdfs/xcdr.h, sys/cdrom.h
cd_xar(3)