cd_getdevmap - get mappings of major/minor numbers of a
file on a Rock Ridge format CD-ROM
#include <sys/cdrom.h>
int cd_getdevmap(
char *path,
int pathlen,
int index,
int *new_major,
int *new_minor );
CD-ROM library (libcdrom.so, libcdrom.a)
This function gets the major and minor numbers of one
device file on a mounted Rock Ridge format CD-ROM. The
argument path points to a file or directory within the CDROM
file hierarchy. The argument index refers to the number
index mapped device file. Mappings can be obtained by
path or index.
If index is zero, this function gets the mapped major and
minor numbers of the device file pointed to by path. The
value of the mapped major number shall be returned in
new_major. The value of the mapped minor number shall be
returned in new_minor. The value of pathlen is not used.
If index is not zero, this function gets the major and
minor numbers and pathname of the mapped device file specified
by index. Numbering for index starts at one. The
value of the mapped major number shall be returned in
new_major. The value of the mapped minor number shall be
returned in new_minor. The pathname of the device file
shall be returned in path. If the length of the pathname
for the device file is longer than pathlen, the pathname
returned in path will be truncated to pathlen length and
will not be NULL terminated.
The maximum number of mappings is defined in
<sys/cdrom.h>. The device file mappings for a mounted CDROM
are undone when the CD-ROM is unmounted.
The index numbers from 1 to n (where n is the number of
the last device file mapping) are always guaranteed to
have a device file mapping associated with the number.
Thus, if an application wishes to successively delete all
device file mappings, one at a time, it would call cd_getdevmap()
with index equal to 1, and then cd_setdevmap()
with CD_UNSETDMAP in a loop until cd_getdevmap() returns
zero.
The cd_getdevmap() function will return the length of the
pathname if the device file is successfully returned; a
return value of zero means mapping not found. Note: If the
pathname is truncated, the return value will be larger
than pathlen.
In case of error, -1 is returned and errno is set to indicate
the error.
Search permission is denied for a component of the path
prefix or read permission on the device file pointed to by
path is denied. 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. 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 address of path, new_major, or new_minor
is invalid. The value of index or pathlen is invalid. The
argument path points to a file or directory not within a
CD-ROM file hierarchy. The file pointed to by path is not
a device file. The CD-ROM is not in the drive or a read
error occurred. A signal was caught during the cd_getdevmap()
function. {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 system
file table is full.
Commands: cddevsuppl(8)
Functions: cd_setdevmap(3)
Files: <sys/cdrom.h>
cd_getdevmap(3)
[ Back ] |