cd_suf(3X)
cd_suf --
read the cdfs System Use Field from the specified System Use Area
Synopsis
cc [flag . . . ] file . . . -lcdfs -lgen [library] . . .
#include <sys/cdrom.h>
int cd_suf(const char *path, int fsec, char *signature, int index,
char *buf, int buflen);
Description
cd_suf reads a System Use Field of the System Use Area associated
with a File Section of a file or directory, following any continuation
fields that may be present.
A continuation field is a System Use Field that extends the System Use
Area so more System Use Fields can be stored.
Continuation fields are defined in the System Use Sharing Protocol
specification.
The System Use Area may be used by the manufacturer
to record additional information about files and directories,
such as the POSIX file system information.
path-
Points to a file or directory within the CD-ROM file hierarchy.
fsec-
Identifies the File Section of that file to be used.
The numbering starts with 1.
If fsec
is set to -1, the System Use Area of the last File Section of that file
is assumed.
signature-
The 2-byte signature word of the requested System Use Field.
See cdfs-specific
dir_cdfs(4)
for a list of the known valid
System Use Field values.
index-
Specifies the occurrence number of signature to return.
If signature is NULL, the index'th occurrence of the
System Use Field is returned, starting from the beginning of the
SUSP portion of System Use Area.
Otherwise, the index'th occurrence of signature is returned.
The index number of the first System Use Field of any
signature is 1.
buf-
Specifies the address of the buffer in which to place the System Use Field.
buflen-
Specifies the length of the buffer in which to place the System Use Field.
Return values
On success, cd_suf returns the number of bytes placed in buf.
If the signature field is not found, 0 is returned.
On failure, cd_suf returns -1 and sets errno
to indicate the error as follows:
EACCES-
Search permission for a component of the path prefix is denied.
EACCES-
Read permission on the file or directory pointed to by path is denied.
EFAULT-
The address of buf, signature or path is invalid.
EINTR-
A signal was caught during the cd_suf function.
EINVAL-
The value of fsec, index or buflen is invalid.
EINVAL-
The path argument
points to a file or directory that is not within the CD-ROM file hierarchy.
EMFILE-
Too many file descriptors are currently open in the calling process.
ENAMETOOLONG-
The length of the path string exceeds MAXPATHLEN.
ENAMETOOLONG-
A pathname component is longer than MAXNAMELEN 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.
ENOENT-
The path argument points to an empty string.
ENOENT-
The File Section indicated by fsec has no System Use Area.
ENOTDIR-
A component of the path prefix is not a directory.
ENXIO-
The CD-ROM is not in the drive.
EIO-
A read error occurred.
References
cddevsuppl(1M),
cdsuf(1M),
cdfs-specific
dir_cdfs(4)
Rock Ridge Interchange Protocol and the
System Use Sharing Protocol from the Rock Ridge Technical Working Group
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004