QUOTACTL(2)

NOME
quotactl - manipula as quotas de disco

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

int quotactl (int cmd, const char *special, int id , caddr_t addr);

#include <linux/unistd.h>

_syscall4(int, quotactl, int, cmd, const char *, special , int, id, caddr_t, addr);

DESCRIÇÃO
O sistema de quotas define para cada usuário e/ou grupo um limite flexível e um limite inflexível restringindo a quantidade de espaço em disco que pode ser usado em um sistema de arquivos. O limite inflexível não pode ser cruzado. O limite flexível pode ser cruzado, mas avisos virão. Além disso, o usuário não pode ficar acima do limite flexível por mais que uma semana (padrão) em um determinado tempo: depois desta semana o limite flexível funciona com um limite inflexível.

A chamada de sistema quotactl manipula esta quota. Seu primeiro argumento é da forma QCMD(subcmd,type) onde type é um dos dois USRQUOTA ou GRPQUOTA (para quota de usuário e grupo, respectivamente), e subcmd é descrito abaixo.

O segundo argumento special é um dispositivo de bloco onde será aplicada a quota. Ele deve estar montado.

O terçeiro argumento id é a ID do usuário ou grupo que esta quota será aplicada (quando relevante).

o quarto argumento addr é o endereço da estrutura de dados, dependendo do comando.

O subcmd é um dos

Q_QUOTAON
    Habilita quotas. O addr argumento é o caminho de busca do arquivo contendo as quotas para o sistema de arquivos.

Q_QUOTAOFF
    Desabilita quotas.

Q_GETQUOTA
    Obtém limites e uso corrente do espaço de disco. o argumento addr é um ponteiro para uma estrutura dqblk (definida em <sys/quota.h>).

Q_SETQUOTA
    Seleciona limites e uso atual; addr é como antes.

Q_SETQLIM
    Seleciona limites; addr é como antes.

Q_SETUSE
    Seleciona o uso.

Q_SYNC
    Sincroniza uma cópia do disco para um sistema de arquivos quota.

Q_GETSTATS
    Obtém estatísticas.

VALORES RETORNADOS
Em caso de sucesso, quotactl retorna 0. Caso contrário, -1 é retornado, e errno é selecionado adequadamente.

ERROS

ENOPKG
    O kernel foi compilado sem suporte para quotas.

EFAULT
    Valor addr ruim.

EINVAL
    tipo não é um tipo de quota conhecido. Ou, special não pode ser achado.

ENOTBLK
    special não é dispostivo de bloco.

ENODEV
    special não pode ser achado na tabela de montagem.

EACCES
    O arquivo quota não é um arquivo ordinário.

EIO Não se pode ler ou escrever no arquivo quota.

EMFILE
    Muitos arquivos abertos: não pode abrir o arquivo de quota.

EBUSY
    Q_QUOTAON foi questionado, mas quota já está habilitado.

ESRCH
    Q_GETQUOTA ou Q_SETQUOTA ou Q_SETUSE ou Q_SETQLIM foi questionado por um sistema de arquivos que não tem quota habilitada.

EPERM
    O processo não é do super-usuário (para o sistema de arquivos), e Q_GETQUOTA foi questionado por outra id que aquele mesmo do processo, ou qualquer coisa a não ser Q_GETSTATS ou Q_SYNC foi questionada.

DE ACORDO COM
BSD

VEJA TAMBÉM
quota(1), getrlimit(2), setrlimit(2), ulimit(2), quotacheck(8), quotaon(8)

TRADUZIDO POR LDP-BR em 21/08/2000
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) xxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx> (revisão)