2017-01-03 1 views
2

Я читал о концепциях учета процессов в Advanced Unix. Я понимаю, что эти учетные записи обычно представляют собой небольшое количество двоичных данных с именем команды, количеством используемого времени процессора, идентификатором пользователя и идентификатором группы, временем начала и т. Д. Для процесса. Но я не понимаю, как можно получить доступ к структуре acct.Учет процессов с использованием структуры acct в Unix

struct acct ac_data; 

Как я могу получить доступ к acct структуру и как можно включить и отключить учет процесса?

+0

Добро пожаловать в SO! Пройдите [Tour] (https://stackoverflow.com/tour). Что вы пробовали? –

+0

Вы имеете в виду продвинутое программирование в среде Unix? Я не мог найти книгу под названием Advance Unix. –

+0

@ DanielPorteous - Спасибо, что я немного понятен из вашего ответа – Harini

ответ

0

Во-первых, стоит отметить, что по некоторым системам учет по умолчанию отключен по умолчанию (я знаю, что он отключен в моей конкретной системе Linux и по последнему macOS 10.12 по умолчанию). Это происходит потому, что ведение журнала с бинарными файлами рассматривается многими нарушают Unix philosophy, а именно эта часть:

писать программы для обработки текстовых потоков, потому что это универсальный интерфейс.

Со всем, что сказал, есть несколько основных вещей, которые нужно сделать:

  1. Включите учета процесса. Вы можете сделать это с помощью команды acct(2), я рекомендую вам ознакомиться с файлами для вашей системы, но here are some for Linux online. Вы указываете, с каким хостом вы хотите войти в систему, или используйте NULL, чтобы отключить учет процесса.

  2. Читайте в бухгалтерских отчетах. Для этого вам нужна функция fread(3), которая считывает двоичные данные из файла. Обратите внимание, что это не межплатформенная платформа, потому что у каждой системы, вероятно, будут разные поля для структуры acct (здесь вы можете увидеть проблемы с двоичными интерфейсами). Опять же, я настоятельно рекомендую вам ознакомиться с файлами для fread, они очень поняли, как их использовать.

  3. Прочитать поля структуры. Как только вы создадите структуру acct в своей программе, вы можете просто получить доступ к таким полям, как любая другая структура. Чтобы узнать, какие поля вы можете использовать, снова прочитайте manpages. This page показывает поля на одной конкретной системе.

Как вы, вероятно, заметили, общая тема здесь заключается в том, чтобы прочитать manpages. Они довольно лаконичны, и я думаю, что это отличный способ объединить то, как работает конкретная система. Введите man 5 acct в вашей системе и у вас будет все, что вам нужно знать!

Смежные вопросы