cd_xar(3X)
cd_xar, cd_cxar --
read CD-ROM Extended Attribute Record (XAR)
Synopsis
cc [flag . . . ] file . . . -lcdfs -lgen [library] . . .
#include <sys/cdrom.h>
int cd_xar(const char *path, const int fsec, struct iso9660_xar *xar,
const int applen, const int esclen);
int cd_cxar(const char *path, const int fsec, char *xar,
const int xarlen);
Description
cd_xar fills xar with the contents of the XAR associated with
the file or directory referred to by the argument path.
An XAR describes attributes of a file or directory (such as the user ID,
group ID, or permissions) on an extent, a portion of a file on a CD-ROM.
An XAR contains a fixed-length field and two variable length fields.
CD_XARFIXL defines the length of the fixed part of the XAR.
You can obtain the total number of an XAR's logical blocks
with the cd_drec function.
You can obtain the Logical Block Size in bytes with the
cd_pvd function.
path-
File or directory in the CD-ROM file system.
fsec-
Specifies the File Section of that file.
The numbering starts with one.
If fsec is set to -1, the
function reads the XAR of the last File Section of the file.
xar-
Pointer to structure or character array where XAR is to be copied.
applen-
Bytes to be copied to the address.
specified in the xar structure by app_use.
esclen-
Bytes to be copied to the address specified in the xar
structure by esc_seq.
xarlen-
Bytes to be copied to xar.
Return values
On success, cd_xar returns the number of bytes copied for
the variable part of the XAR.
On success, cd_cxar returns the number of bytes copied.
On failure, the functions return -1 and set errno
to identify the error as follows:
EACCES-
Read permission is denied on the mount point, or
search permission is denied on a component of path.
EFAULT-
Invalid address for the structure cd_defs or path.
EINTR-
A signal was caught during the execution of one of the functions.
EINVAL-
Invalid value for fsec or xarlen.
EINVAL-
path points to a file or directory that is outside the CD-ROM file system.
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, the path argument points to an empty string,
or the file section indicated by fsec has no XAR.
ENOTDIR-
A component of path is not a directory.
ENXIO-
CD-ROM is not in the drive or a read error occurred.
References
cdxar(1M),
cd_drec(3X),
cd_pvd(3X)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004