cd_nmconv(3X)


cd_nmconv -- set or get CD-ROM name conversion flag

Synopsis

   cc [flag . . . ] file . . . -lcdfs -lgen [library] . . .
   

#include <sys/cdrom.h>

int cd_nmconv(const char *path, int cmd, int *flag);

Description

cd_nmconv sets or gets the name conversion flag for file names on the mounted CD-ROM. cd_nmconv provides a way to make the CD-ROM file names appear consistent with the names on the rest of the system.

CD-ROM file identifiers take the following format:

   FILENAME.FILENAME_EXTENSION;VERSION

where FILENAME and FILENAME_EXTENSION are alphanumeric and VERSION is a number.

If the name conversion flag needs to be set, set it after the CD-ROM has been mounted, but before any CD-ROM access occurs. If the command is executed while files are open, the changes will not take effect until the file is closed.


path
Mount point of a CD-ROM file system.

cmd
CD_SETNMCONV to set the conversion flag or CD_GETNMCONV to get the value of the conversion flag.

flag
flag is a pointer to one of the following:

CD_NOCONV
No conversion

CD_LOWER
Convert characters in file identifiers to lower case. If a file identifier doesn't contain a filename extension, don't display the period (``.''). You may use CD_LOWER and CD_NOVERSION separately or together.

CD_NOVERSION
The version number and the semicolon (``;'') of a File Identifier are not represented. You may use CD_LOWER and CD_NOVERSION separately or together.

Return values

On success, cd_nmconv returns a value of zero. On failure, cd_nmconv returns -1 and sets 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 flag or path.

EINTR
A signal was caught during the execution of the cd_nmconv function.

EINVAL
The value of cmd or flag is invalid, or path argument does not point to a mount point of a 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 or the path argument points to an empty string.

ENOTDIR
A component of path is not a directory.

EPERM
User lacks write permission to set values.

References

cdmntsuppl(1M), cdfs-specific mount_cdfs(1M)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004