QUOTACTL(2)

NOMBRE
quotactl - manipula cuotas de disco

SINOPSIS
#include <sys/types.h>
#include <sys/quota.h>

int quotactl (int cmd, const char *especial, int id , caddr_t direc);

#include <linux/unistd.h>

_syscall4(int, quotactl, int, cmd, const char *, especial , int, id, caddr_t, direc);

DESCRIPCIÓN
El sistema de cuotas define para cada usuario o grupo un límite blando y un límite duro limitando la cantidad de espacio de disco que puede usarse en un sistema de ficheros dado. EL límite duro no puede ser traspasado. El límite blando puede traspasarse, pero se avisará de ello. Ítem más, el usuario no puede estar por encima del límite blando más allá de una semana (tiempo predeterminado) cada vez: después de este periodo el límite blando cuenta como el duro.

La llamada al sistema quotactl manipula estas cuotas. Su primer argumento es de la forma QCMD(subcmd,tipo) donde tipo es uno de USRQUOTA o GRPQUOTA (para cuotas de usuario y grupo, respectivamente), y subcmd está descrito más abajo.

El segundo argumento especial es el dispositivo especial de bloques al que se aplican estas cuotas. Debe estar montado.

El tercer argumento id es el identificador del usuario o grupo al cual se aplican estas cuotas (cuando sea relevante).

El cuarto argumento direc es la dirección de una estructura de datos, dependiendo de la orden.

El subcmd es uno de

Q_QUOTAON
    Activa las cuotas. El argumento direc es el camino del fichero que contiene las cuotas para el sistema de ficheros.

Q_QUOTAOFF
    Desactiva las cuotas.

Q_GETQUOTA
    Obtiene los límites y el uso actual del espacio de disco. El argumento direc es un puntero a una estructura dqblk (definida en <sys/quota.h>).

Q_SETQUOTA
    Establece los límites y el uso actual; direc es como antes.

Q_SETQLIM
    Establece los límites; direc es como antes.

Q_SETUSE
    Establece el uso.

Q_SYNC
    Sincroniza la copia en disco de las cuotas de un sistema de ficheros.

Q_GETSTATS
    Obtiene datos estadísticos recogidos.

VALOR DEVUELTO
En caso de éxito, quotactl devuelve 0. En caso de error, se devuelve -1 y se pone un valor apropiado en errno.

ERRORES

ENOPKG
    El núcleo ha sido compilado sin soporte de cuotas.

EFAULT
    Valor malo para direc.

EINVAL
    tipo no es un tipo de cuotas conocido. O especial no ha podido ser encontrado.

ENOTBLK
    especial no es un dispositivo especial de bloques.

ENODEV
    especial no se halla en la tabla de montaje.

EACCES
    El fichero de cuotas no es un fichero ordinario.

EIO No se puede leer o escribir en el fichero de cuotas.

EMFILE
    Demasiados ficheros abiertos: no se puede abrir el fichero de cuotas.

EBUSY
    Se ha pedido Q_QUOTAON pero las cuots ya estaban activadas.

ESRCH
    Se ha pedido Q_GETQUOTA o Q_SETQUOTA o Q_SETUSE o Q_SETQLIM para un sistema de ficheros que no tenía las cuotas activadas.

EPERM
    El proceso no era root (para el sistema de ficheros), y se ha pedido Q_GETQUOTA para otro id que el del proceso mismo, o se ha pedido otra cosa distinta a Q_GETSTATS o a Q_SYNC .

CONFORME A
BSD

VÉASE TAMBIÉN
quota(1), getrlimit(2), setrlimit(2), ulimit(2), quotacheck(8), quotaon(8)