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) |