SETQUOTA(2)

NAME
setquota - enable/disable quotas on a file system

SYNOPSIS
setquota(special, file)
char *special, *file;

DESCRIPTION
Disc quotas are enabled or disabled with the setquota call. Special indicates a block special device on which a mounted file system exists. If file is nonzero, it specifies a file in that file system from which to take the quotas. If file is 0, then quotas are disabled on the file system. The quota file must exist; it is normally created with the quotacheck(8) program.

Only the super-user may turn quotas on or off.

SEE ALSO
quota(2), quotacheck(8), quotaon(8)

RETURN VALUE
A 0 return value indicates a successful call. A value of -1 is returned when an error occurs and errno is set to indicate the reason for failure.

ERRORS
Setquota will fail when one of the following occurs:

[ENOTDIR]
    A component of either path prefix is not a directory.

[EINVAL]
    Either pathname contains a character with the high-order bit set.

[EINVAL]
    The kernel has not been compiled with the QUOTA option.

[ENAMETOOLONG]
    A component of either pathname exceeded 255 characters, or the entire length of either path name exceeded 1023 characters.

[ENODEV]
    Special does not exist.

[ENOENT]
    File does not exist.

[ELOOP]
    Too many symbolic links were encountered in translating either pathname.

[EPERM]
    The caller is not the super-user.

[ENOTBLK]
    Special is not a block device.

[ENXIO]
    The major device number of special is out of range (this indicates no device driver exists for the associated hardware).

[EROFS]
    File resides on a read-only file system.

[EACCES]
    Search permission is denied for a component of either path prefix.

[EACCES]
    File resides on a file system different from special.

[EACCES]
    File is not a plain file.

[EIO]
    An I/O error occurred while reading from or writing to the file containing the quotas.

[EFAULT]
    Special or path points outside the process's allocated address space.

BUGS
The error codes are in a state of disarray; too many errors appear to the caller as one value.