Index Index for
Section 3
Index Alphabetical
listing for C
Bottom of page Bottom of
page

cd_defs(3)

NAME

cd_defs - sets or gets default values for the User or Group ID, or for file or directory permissions

SYNOPSIS

#include <sys/cdrom.h> int cd_defs( char *path, int cmd, struct cd_defs *defs );

LIBRARY

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

PARAMETERS

*path Points to a mount point of a CD-ROM File System. cmd Can be set to either {CD_SETDEFS} to set or {CD_GETDEFS} to get the default values for the UID, GID, or file or directory permissions for the mounted CD-ROM pointed to by *path. The variables {CD_SETDEFS} and {CD_GETDEFS} are defined in cdfs/xcdr.h, an include file that is called into sys/cdrom.h. *defs Points to the cd_defs structure that holds the default values for the UID, GID, and file or directory permissions for the mounted CD-ROM pointed to by *path. The cd_defs structure is defined in cdfs/xcdr.h, an include file that is called into sys/cdrom.h.

DESCRIPTION

The cd_defs() routine sets or gets the default values for UIDs, GIDs, or file or directory permissions for a mounted CD-ROM.

RESTRICTIONS

Setting default values is restricted to users with the appropriate privileges. This function is intended to be used to set default values only directly after the CD-ROM is mounted and before its files and directories are accessed. Attempting to use this function to set default values after files or directories on the CD-ROM have been accessed may produce unpredictable results.

RETURN VALUES

If successful, the value zero is returned. 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 on the mount-point. [EFAULT] The address of *defs or *path is invalid. [EINTR] A signal was caught during execution of the function. [EINVAL] The argument *path does not point to a mount-point of a CD-ROM File System. The value of cmd or values of members of the cd_defs structure are invalid. [EMFILE] {OPEN_MAX} file descriptors are currently open in the calling process. [Tru64 UNIX] Either the OPEN_MAX value or the per-process soft descriptor limit is checked. [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. [ENOENT] A component of *path does not exist, or the *path argument points to an empty string. [ENOTDIR] A component of the *path prefix is not a directory. [EPERM] The user does not have the appropriate privileges to set values.

SEE ALSO

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

Index Index for
Section 3
Index Alphabetical
listing for C
Top of page Top of
page