Man Linux: Main Page and Category List


       quotactl - manipulate disk quota


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

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


       The  quota system defines for each user and/or group a soft limit and a
       hard limit bounding the amount of disk space that  can  be  used  on  a
       given  file  system.  The hard limit cannot be crossed.  The soft limit
       can be crossed, but warnings will ensue.  Moreover, the user cannot  be
       above  the  soft  limit  for more than one week (by default) at a time:
       after this week the soft limit counts as hard limit.

       The quotactl() system call manipulates these quota.  Its first argument
       is  of  the  form  QCMD(subcmd,type)  where  type is either USRQUOTA or
       GRPQUOTA (for user quota and group quota, respectively), and subcmd  is
       described below.

       The  second  argument  special  is the block special device these quota
       apply to.  It must be mounted.

       The third argument id is the user or group  ID  these  quota  apply  to
       (when relevant).

       The  fourth argument addr is the address of a data structure, depending
       on the command.

       The subcmd is one of

       Q_QUOTAON  Enable quota.  The addr argument is the pathname of the file
                  containing the quota for the file system.

       Q_QUOTAOFF Disable quota.

       Q_GETQUOTA Get  limits  and  current  usage  of  disk  space.  The addr
                  argument is a pointer  to  a  dqblk  structure  (defined  in

       Q_SETQUOTA Set limits and current usage; addr is as before.

       Q_SETQLIM  Set limits; addr is as before.

       Q_SETUSE   Set usage.

       Q_SYNC     Sync disk copy of a file system’s quota.

       Q_GETSTATS Get collected stats.


       On  success, quotactl() returns 0.  On error, -1 is returned, and errno
       is set appropriately.


       EACCES   The quota file is not an ordinary file.

       EBUSY    Q_QUOTAON was asked, but quotas were enabled already.

       EFAULT   Bad addr value.

       EINVAL   type is not a known quota type.   Or,  special  could  not  be

       EIO      Cannot read or write the quota file.

       EMFILE   Too many open files: cannot open quota file.

       ENODEV   special cannot be found in the mount table.

       ENOPKG   The kernel was compiled without quota support.

       ENOTBLK  special is not a block special device.

       EPERM    The process was not root (for the file system), and Q_GETQUOTA
                was asked for another id than that of the process  itself,  or
                anything other than Q_GETSTATS or Q_SYNC was asked.

       ESRCH    Q_GETQUOTA  or  Q_SETQUOTA  or Q_SETUSE or Q_SETQLIM was asked
                for a file system that didn’t have quota enabled.




       quota(1),   getrlimit(2),   setrlimit(2),   ulimit(3),   quotacheck(8),


       This  page  is  part of release 3.24 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at