2017-01-03 2 views
2

고급 유닉스에서 프로세스 회계 개념에 대해 읽었습니다. 나는 이러한 회계 기록이 일반적으로 명령의 이름, 사용 된 CPU 시간, 사용자 ID 및 그룹 ID, 시작 시간 등과 같은 프로세스에 대한 2 진 데이터의 작은 양이라는 것을 알고 있습니다. 그러나 acct 구조에 액세스 할 수있는 방법을 이해하지 못합니다.Unix에서 acct 구조로 회계 처리하기

struct acct ac_data; 
내가 acct 구조를 액세스 할 수있는 방법은 내가 활성화 및 비활성화 프로세스 계정 어떻게

?

+0

안녕하세요! [둘러보기] (https://stackoverflow.com/tour)를 방문하십시오. 너 뭐 해봤 니? –

+0

유닉스 환경에서 고급 프로그래밍을 의미합니까? Advance Unix라는 책을 찾을 수 없었습니다. –

+0

@DanielPorteous - 감사합니다, 당신의 대답에서 조금 분명 해요 – Harini

답변

0

일부 시스템에서는 프로세스 계정이 기본적으로 비활성화되어 있습니다 (특정 Linux 시스템과 기본적으로 최신 macOS 10.12에서 비활성화되었음을 알고 있습니다). 즉 보편적 인 인터페이스이기 때문에, 텍스트 스트림을 처리 할 수 ​​

쓰기 프로그램 : 바이너리 파일에 로깅이 Unix philosophy 위반하는 많은 간주되기 때문에이 특별히이 부분이다. 프로세스 계정에

  1. 켭 말했다 모두와 함께

, 당신이해야 할 몇 가지 주요 가지가 있습니다.
acct(2) 명령을 사용하여이 작업을 수행 할 수 있지만 시스템의 맨 페이지를 확인하는 것이 좋습니다. 그러나 here are some for Linux online. 이 명령으로 로그인 할 위치를 지정하거나 NULL을 사용하여 프로세스 계정 기능을 해제하십시오.

  • 회계 기록을 읽으십시오.이 경우 파일에서 이진 데이터를 읽는 fread(3) 함수가 필요합니다. 이것은 각 시스템이 acct 구조체 (여기에서는 바이너리 인터페이스의 문제점을 볼 수 있음)에 대해 서로 다른 필드를 가질 가능성이 있으므로 크로스 플랫폼이 아닙니다. 다시 한 번 말하지만, fread의 맨 페이지를 읽는 것이 좋습니다. 사용법은 매우 명확합니다.

  • 구조체 필드를 읽습니다. 프로그램에 acct 구조체가 있으면 다른 구조체처럼 필드에 액세스 할 수 있습니다. 다시 사용할 수있는 필드를 확인하려면 맨 페이지를 읽으십시오. This page은 특정 시스템의 필드를 보여줍니다.

  • 아마도 눈치 챘 겠지만 공통 주제는 맨페이지를 읽는 것입니다. 그것들은 매우 간결하며 특정 시스템이 어떻게 작동하는지 함께 생각하는 좋은 방법이라고 생각합니다. 귀하의 시스템에 man 5 acct을 입력하면 알아야 할 모든 것이 있습니다!