Во-первых, стоит отметить, что по некоторым системам учет по умолчанию отключен по умолчанию (я знаю, что он отключен в моей конкретной системе Linux и по последнему macOS 10.12 по умолчанию). Это происходит потому, что ведение журнала с бинарными файлами рассматривается многими нарушают Unix philosophy, а именно эта часть:
писать программы для обработки текстовых потоков, потому что это универсальный интерфейс.
Со всем, что сказал, есть несколько основных вещей, которые нужно сделать:
Включите учета процесса. Вы можете сделать это с помощью команды acct(2)
, я рекомендую вам ознакомиться с файлами для вашей системы, но here are some for Linux online. Вы указываете, с каким хостом вы хотите войти в систему, или используйте NULL
, чтобы отключить учет процесса.
Читайте в бухгалтерских отчетах. Для этого вам нужна функция fread(3)
, которая считывает двоичные данные из файла. Обратите внимание, что это не межплатформенная платформа, потому что у каждой системы, вероятно, будут разные поля для структуры acct
(здесь вы можете увидеть проблемы с двоичными интерфейсами). Опять же, я настоятельно рекомендую вам ознакомиться с файлами для fread
, они очень поняли, как их использовать.
Прочитать поля структуры. Как только вы создадите структуру acct
в своей программе, вы можете просто получить доступ к таким полям, как любая другая структура. Чтобы узнать, какие поля вы можете использовать, снова прочитайте manpages. This page показывает поля на одной конкретной системе.
Как вы, вероятно, заметили, общая тема здесь заключается в том, чтобы прочитать manpages. Они довольно лаконичны, и я думаю, что это отличный способ объединить то, как работает конкретная система. Введите man 5 acct
в вашей системе и у вас будет все, что вам нужно знать!
Добро пожаловать в SO! Пройдите [Tour] (https://stackoverflow.com/tour). Что вы пробовали? –
Вы имеете в виду продвинутое программирование в среде Unix? Я не мог найти книгу под названием Advance Unix. –
@ DanielPorteous - Спасибо, что я немного понятен из вашего ответа – Harini