파일과 같은 방식으로 디스크 통계를 얻으려고합니다. 파일을 읽지 않고 해당 값에 도달할 수 있는 방법이 있습니까? 이 값은 어떻게 거기에 배치됩니까? diskstats에 배치할 데이터를 처리하는 ".c" 파일이 있습니까? proc/stat 및 meminfo는 어떻습니까? (디스크 통계가 나의 주요 관심사입니다)
답변1
이것/proc
문서—또는 오히려 의사파일 —은 사용자 프로세스와 커널 사이의 데이터 인터페이스입니다. /proc
커널은 (사용자) 프로세스가 파일을 열고 읽을 때 데이터를 제공합니다. 그렇습니다. 데이터를 .c
생성 하는 루틴이 있지만 diskstats
이는 커널의 일부입니다.
proc 의사 파일 시스템을 통해 액세스할 수 있는 일부 데이터는 다른 소스 및/또는 다른 수단을 통해 액세스할 수 있습니다. 간단한 예를 들면, 프로세스는 종종 수집할 수 있는 방대한 양의 정보에 직접 액세스할 수 있습니다.그것은
/proc/pid
목차. 그러나 대부분의 /proc
정보는 일반적으로 사용자 프로세스에서 액세스할 수 없는 커널 데이터 구조에서 나옵니다. 권한이 있는 사용자 수준 프로세스는 다음 명령을 사용하여 커널에서 이 정보를 추출할 수 있습니다 /dev/kmem
(참조:메모리(4)
그리고킬로미터 메모리(7D)) - 이를 지원하는 시스템에서 - 그러나 이는 매우 어렵고 아마도 이식성이 없을 것이며 일반적으로권장되지 않음. 모든 실제적인 목적을 위해 /proc
이것이 이 데이터를 얻을 수 있는 유일한 방법입니다.