Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cd_xar(3) — OSF/1 3.0 αXP

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cd_drec(3)

cd_xar(3)  —  Subroutines

NAME

cd_xar, cd_cxar - Reads the Extended Attribute Record for a CD-ROM file or directory from the CD-ROM

LIBRARY

Rock Ridge and X/Open Extensions to the CDFS library (libcdrom.so, libcdrom.a)

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 );

PARAMETERS

∗path

Points to the file or directory within the CD-ROM File System hierarchy. 

fsec

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. 

∗xar

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

applen

Used in conjunction with esclen, determines how many bytes will be copied to the address specified by the ∗xar structure member app_use. 

esclen

Used in conjunction with applen, determines how many bytes will be copied to the address specified by the ∗xar structure member esc_seq. 

∗addr

Specifies the address where the function cd_cxar copies the XAR that is recorded on the CD-ROM. 

xarlen

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 variable part of the XAR. 

The cd_cxar function returns the number of bytes copied. 
If unsuccessful, the integer -1 is returned and errno is set to indicate the error. 

ERRORS

The function will fail if:

[EACCES]Search permission is denied for a directory in ∗path or read permission is denied for the file or directory pointed to by ∗path. 

[EFAULT]The address of ∗path or ∗addr is invalid. 

[EINTR]A signal was caught during execution of the function. 

[EINVAL]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. 

[EMFILE]{OPEN_MAX} file descriptors are currently open in
the calling process.

[ENAMETOOLONG]
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. 

[ENFILE]The system file table is full. 

[ENODEV]The Volume containing the File Section indicated by fsec is not mounted. 

[ENOENT]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. 

[ENOTDIR]A component of the ∗path prefix is not a directory. 

[ENXIO]The CD-ROM is not in the drive, or a read error occurred. 

RELATED INFORMATION

Files: cdfs/xcdr.h, sys/cdrom.h. 

Functions: cd_drec(3)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026