cd_nmconv - sets or gets CD-ROM file name conversions
#include <sys/cdrom.h>
int cd_nmconv(
char *path,
int cmd,
int *flag );
Rock Ridge and X/Open Extensions to the CDFS library
(libcdrom.so, libcdrom.a)
Points to a mount point of a CD-ROM file system. Can be
set to either {CD_SETNMCONV} to set or {CD_GETNMCONV} to
get the name conversion for file names on a mounted CDROM.
Used in conjunction with cmd, and can be one of the
following:
{CD_NOCONV}
No conversion. This is the default when the CD-ROM
is first mounted.
{CD_LOWER}
File or directory names on the CD-ROM File System
are converted to lowercase when represented in the
XSI file hierarchy. In addition, if a file or
directory name contains no File Name Extension,
SEPARATOR 1, a dot (.), is not represented in the
XSI file hierarchy.
{CD_NOVERSION}
The version number and SEPARATOR 2, a semicolon
(;), of a file or directory name on the CD-ROM File
System are not represented in the XSI file hierarchy.
Note that {CD_LOWER} and {CD_NOVERSION} may be bitwise-inclusive
ORed.
The cd_nmconv() routine sets of gets the name conversion
*flag for file names on a mounted CD-ROM.
Setting a file name conversion is restricted to users with
the appropriate privileges. This function is intended to
be used to set a file name conversion only directly after
the CD-ROM is mounted and before its files and directories
are accessed. Attempting to use this function to set a
file name conversion after files or directories on the CDROM
have been accessed may produce unpredictable results.
If successful, the value zero is returned. If unsuccessful,
the integer -1 is returned and errno is set to indicate
the error.
The function will fail if: Search permission is denied for
a directory in *path or read permission is denied on the
mount-point. The address of *flag or *path is invalid. A
signal was caught during execution of the function. The
argument *path does not point to a mount point of a CD-ROM
File System. The value of cmd or *flag is invalid.
{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
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. 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 user does not have the appropriate privileges
to set values.
Files: cdfs/xcdr.h, sys/cdrom.h
cd_nmconv(3)
[ Back ] |