Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 2001 18:10:39 -0600
From:      Ben Weaver <sid67@tranquility.net>
To:        questions@freebsd.org
Subject:   values in struct dqblk returned by quotactl
Message-ID:  <20010117181039.A16102@tranquility.net>

next in thread | raw e-mail | index | archive | help
Hey all,

I just had a quick question about the quotactl(3) function and the values it returns in the dqblk structure defined in ufs/ufs/quota.h.  From reading the manpage for quotactl, it seems that it is designed to be a way to read and set quotas for users and groups, among other things.  I wrote a small C program (see bottom) to use this function, but everything it returns in the dqblk structure seems to be 2x what the actual values are when I use the quota(1) command.  I looked at the source for the quota(1) command, and it appears to grab the quota information directly from the users.quota file (see /usr/src/usr.bin/quota.c getufsquota()).  Do I have the wrong impression of the quotactl function, or is there some reason why the values returned are twice what they should be?

Thanks, 

-Ben

#include <stdio.h>
#include <pwd.h>
#include <sys/types.h>
#include <ufs/ufs/quota.h>
#include <unistd.h>
#include <err.h>

int main ( ) {

   struct passwd *entry;
   struct dqblk quota;

   entry = getpwnam ("sid67");
   if (quotactl ("/home", QCMD(Q_GETQUOTA, USRQUOTA), entry->pw_uid, &quota)) {
       err (1, NULL);
       exit (1);
   }

   printf ("Soft Limit: %d Hard Limit: %d Current: %d\n", quota.dqb_bsoftlimit, quota.dqb_bhardlimit, quota.dqb_curblocks);

   exit (0);

}
 

The output of this program:

Soft Limit: 10240 Hard Limit: 20480 Current: 2

The output of the quota sid67 command:

Disk quotas for user bweaver (uid 2601): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /home     131    5120   10240              17       0       0        



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010117181039.A16102>