acct(2) activa/desactiva la contabilidad de procesos

SINOPSIS

#include <unistd.h>


int acct(const char *filename);

DESCRIPCIÓN

Cuando se usa con el nombre de un fichero existente como argumento, se activa la contabilidad y se añade a filename un registro de información para cada proceso finalizado. Usando NULL como argumento desactiva la contabilidad.

VALOR DEVUELTO

En caso de éxito el valor devuelto es cero. Si hay algún error, el resultado es -1 y a errno se le asigna un valor apropiado.

ERRORES

EACCES
Permiso de escritura denegado sobre el fichero especificado.
EACCESS
El argumento filename no es un fichero regular.
EFAULT
filename apunta fuera del espacio de direcciones accesible.
EIO
Error al escribir en el fichero filename.
EISDIR
filename es un directorio.
ELOOP
Demasiados enlaces simbólicos encontrados al resolver filename.
ENAMETOOLONG
filename es demasiado largo.
ENOENT
El nombre de fichero especificado no existe.
ENOMEM
No hay memoria suficiente.
ENOSYS
No se activó la contabilidad BSD de procesos cuando se compiló el núcleo. EL parámetro de configuración del núcleo que controla esta característica es CONFIG_BSD_PROCESS_ACCT.
ENOTDIR
Un componente usado como directorio en filename no es un directorio.
EPERM
El proceso invocador no tiene permiso para activar la contabilidad de procesos.
EROFS
filename hace referencia a un fichero en un sistema de ficheros de solo-lectura.
EUSERS
No hay más estructuras de fichero disponibles o no hay memoria suficiente.

CONFORME A

SVr4 (pero no a POSIX). SVr4 documenta una condición de error EBUSY, pero no EISDIR ni ENOSYS. También AIX y HPUX documentan EBUSY (intento de activar la contabilidad cuando ya está activada), al igual que Solaris (intento de activar la contabilidad usando el mismo fichero que ya está siendo usado actualmente).

OBSERVACIONES

No se genera contabilidad alguna para aquellos programas que se estén ejecutando cuado ocurre una caída del sistema. En particular, los procesos que nunca finalizan no se tienen en cuenta en la contabilidad.