acct

Autres langues

Langue: pl

Autres versions - même langue

Version: 1998-11-04 (fedora - 25/11/07)

Autres sections - même nom

Section: 2 (Appels système)

NAZWA

acct - włączenie/wyłączenie ewidencjonowania procesów

SKŁADNIA

 #include <unistd.h>
 
 int acct(const char *filename);
 

DESCRIPTION

Funkcja wywołana z nazwą istniejącego pliku jako parametrem, włącza ewidencjonowanie procesów i powoduje dopisywanie do pliku filename informacji o każdym zakończonym procesie. Argument NULL powoduje wyłączenie ewidencjonowania procesów.

WARTOŚĆ ZWRACANA

Po pomyślnym zakończeniu zwracane jest 0, w razie błędu zwracane jest -1 i odpowiednio ustawiane errno.

BŁĘDY

EACCES
Brak prawa do zapisu do podanego pliku.
EACCES
Parametr filename nie jest zwykłym plikiem.
EFAULT
filename wskazuje poza dostępną dla użytkownika przestrzeń adresową.
EIO
Błąd zapisu do pliku filename.
EISDIR
filename jest katalogiem.
ELOOP
Podczas rozwiązywania filename napotkano zbyt wiele dowiązań symbolicznych.
ENAMETOOLONG
Nazwa filename jest za długa.
ENOENT
Podany plik nie istnieje.
ENOMEM
Brak pamięci.
ENOSYS
Rozlicznie procesów nie zostało włączone w czasie kompilacji jądra systemu. Odpowiednim parametrem jądra ustawiającym tę opcję jest CONFIG_BSD_PROCESS_ACCT.
ENOTDIR
Składnik filename, który powinien być katalogiem, w rzeczywistości nim nie jest.
EPERM
Proces wywołujący tę funkcję ma niewystarczające uprawnienia do włączenia ewidencjonowania procesów.
EROFS
Plik filename znajduje się w systemie plików tylko do zapisu.
EUSERS
Brak wolnych struktur plikowych w jądrze lub brak pamięci.

ZGODNE Z

SVr4 (ale nie POSIX). SVr4 dokumentuje błądy EBUSY, ale nie EISDIR czy ENOSYS. AIX i HPUX również dokumentują EBUSY (próba włączenia ewidencjonowania, podczas gdy jest ono już włączone). Dotyczy to również Solarisa (próba włączenia ewidencjonowania z wykorzystaniem pliku, który jest już używany).

UWAGI

W wypadku załamania się systemu, informacje ewidencjonowania procesów nie będą dodane, nie zakończone procesy nigdy nie będą zaewidencjonowane.