HPlogo HP-UX Reference Volume 3 of 5 > a

acct(2)

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

NAME

acct() — enable or disable process accounting

SYNOPSIS

#include <sys/acct.h>

int acct(const char *path);

DESCRIPTION

The acct() system call enables or disables the system's process accounting routine. If the routine is enabled, an accounting record is written on an accounting file for each process that terminates. Termination can be caused by one of two things: an exit() call or a signal (see exit(2) and signal(5)). The effective user ID of the calling process must be superuser to use this call.

path points to a path name naming the accounting file. The accounting file format is described in acct(4).

The accounting routine is enabled if path is nonzero and no errors occur during the system call. It is disabled if path is zero and no errors occur during the system call.

When the amount of free space on the file system containing the accounting file falls below a configurable threshold, the system prints a message on the console and disables process accounting. Another message is printed and the process accounting is reenabled when the space reaches a second configurable threshold.

If the size of the process accounting file reaches 5000 blocks, records for processes terminating after that point will be silently lost. However, in that case the turnacct command would still sense that process accounting is still enabled. This loss of records can be prevented with the ckpacct command. ckpacct and turnacct are described in acctsh(1M)).

RETURN VALUE

acct() returns the following values:

0

Successful completion.

-1

Failure. errno is set to indicate the error.

ERRORS

If acct() fails, errno is set to one of the following values.

[EACCES]

The file named by path is not an ordinary file.

[EBUSY]

An attempt is being made to enable accounting when it is already enabled.

[EFAULT]

path points to an illegal address. The reliable detection of this error simplementation dependent.

[ELOOP]

Too many symbolic links were encountered in translating the path name.

[ENAMETOOLONG]

The accounting file path name exceeds PATH_MAX bytes, or the length of a component of the path name exceeds NAME_MAX bytes while _POSIX_NO_TRUNC is in effect.

[ENOENT]

One or more components of the accounting file path name do not exist.

[ENOTDIR]

A component of the path prefix is not a directory.

[EPERM]

The effective user ID of the calling process is not superuser.

[EROFS]

The named file resides on a read-only file system.

[ETXTBSY]

path points to a text file which is currently open.

STANDARDS CONFORMANCE

acct(): SVID2, SVID3, XPG2

© Hewlett-Packard Development Company, L.P.