acct(4) acct(4)
NAME
acct - Format der prozeßbezogenen Abrechnungsdatei
SYNTAX
#include <sys/types.h>
#include <sys/acct.h>
BESCHREIBUNG
Beim Aufruf von acct(2) werden Dateien erzeugt, die Datensätze in
einem durch <sys/acct.h> definierten Format mit folgendem Inhalt ent-
halten:
typedef ushort compt; /* "floating point" */
/* 13-bit fraction, 3-bit exponent */
struct acct
{
char acflag; /* Accounting flag */
char acstat; /* Exit status */
uidt acuid; /* Accounting user ID */
gidt acgid; /* Accounting group ID */
devt actty; /* control typewriter */
timet acbtime; /* Beginning time */
compt acutime; /* acctng user time in clock ticks */
compt acstime; /* acctng system time in clock ticks */
compt acetime; /* acctng elapsed time in clock ticks */
compt acmem; /* memory usage in clicks */
compt acio; /* chars trnsfrd by read/write */
compt acrw; /* number of block reads/writes */
char accomm[8]; /* command name */
};
extern struct acct acctbuf;
extern struct vnode *acctp; /* vnode of accounting file */
#define AFORK 01 /* has executed fork, but no exec */
#define ASU 02 /* used super-user privileges */
#define ACCTF 0300 /* record type: 00 = acct */
#define AEXPND 040 /* Expanded Record Type */
Das Flag AFORK innerhalb von acflag wird bei jedem Aufruf des Syste-
maufrufs fork aktiviert und bei jedem Aufruf von exec deaktiviert. Das
Feld accomm wird vom Vaterprozeß übernommen und bei jedem Aufruf von
exec zurückgesetzt. Jedesmal wenn das System dem Prozeß einen Zeittakt
in Rechnung stellt, fügt es in das Feld acmem zusätzlich die aktuelle
Prozeßgröße ein, die wie folgt berechnet wird:
(data size) + (text size) / (number of in-core processes using
text)
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
acct(4) acct(4)
Der Wert von acmem/(acstime+acutime) kann als ungefähre mittlere
Prozeßgröße betrachtet werden, die sich durch die gemeinsame Nutzung
von Programmcode ändert.
HINWEISE
Der Wert acmem liefert bei Kommandos mit kurzer Laufzeit nur wenig
Informationen über die tatsächliche Größe des Kommandos, da acmem
sich mit jedem neuen Kommando, das durch den Prozeß aufgerufen wird,
erhöhen kann (dabei kann es sich auch z. B. um den Aufruf einer Shell
handeln).
SIEHE AUCH
acctcom(1), acct(1M), acct(2), exec(2), fork(2).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98