Linux |
CentOS 4.8 |
|
![]() |
acct(2) |
![]() |
|
acct − Activer/désactiver la comptabilité des processus (account). |
#include <unistd.h> int acct(const char *filename); |
|
Quand la fonction est appelée avec un nom de fichier existant comme argument, la comptabilité est mise en marche, un enregistrement étant ajouté à filename à la fin de chaque processus. Un argument NULL arrête la comptabilité. L’appelant doit être Super−User. [NDT] Comment relire les informations de comptabilisation enregistrées ? |
|
acct renvoie 0 quand elle réussit, ou −1 quand elle échoue, auquel cas errno contient le code d’erreur. |
|
EACCESS |
|
Interdiction d’écrire dans le fichier indiqué. |
|
EACCESS |
|
L’argument filename n’est pas un fichier régulier. |
|
EFAULT |
filename pointe en dehors de l’espace d’adressage autorisé. |
||
|
EIO |
Impossible d’écrire dans le fichier filename. |
||
|
EISDIR |
filename est un répertoire. |
||
|
ELOOP |
Références symboliques circulaires dans le chemin d’accès à filename. |
|
ENAMETOOLONG |
|
filename est trop long. |
|
ENOENT |
Le nom de fichier indiqué n’existe pas. |
||
|
ENOMEM |
Pas assez de mémoire. |
||
|
ENOSYS |
Le système de comptabilité BSD n’a pas été activé lors de la compilation du noyau. Le paramètre de configuration du noyau contrôlant cette option est CONFIG_BSD_PROCESS_ACCT. |
|
ENOTDIR |
|
Un composant du chemin d’accès à filename n’est pas un répertoire. |
|
EPERM |
L’appelant n’a pas la permission d’activer la comptabilité. |
||
|
EROFS |
filename se trouve sur un système de fichiers en lecture seule. |
||
|
EUSERS |
Il n’y a plus de structures de fichiers libres, ou il n’y a plus assez de mémoire disponible. |
#include <stdio.h>
#include <unistd.h>
int
main (int nb_args, char * args [])
{
if (nb_args != 2)
fprintf (stdout, "Retour %d\n", acct (NULL));
else
fprintf (stdout, "Retour %d\n", acct (args [1]));
return (0);
}
|
|
SVr4 (mais pas POSIX). SVr4 indique une condition d’erreur EBUSY, mais ni EISDIR ni ENOSYS. De même AIX et HP-UX documentent EBUSY (essai d’activation alors que la comptabilité est déjà en fonctionnement), comme Solaris (essai d’activation de la comptabilité avec le même fichier que celui déjà en cours d’utilisation). |
|
Aucune comptabilisation n’est effectuée pour les programmes en cours d’exécution si un plantage système survient. En particulier les processus qui ne se terminent jamais ne sont pas comptabilisés. |
|
Christophe Blaess, 1997. |
![]() |
acct(2) | ![]() |