, 원래 러스 Allbery here에 의해 게시 : C 프로그램의 외부 PAG 번호를 얻기 위해 (아직) 공식적인 인터페이스가 없습니다
#include <stdio.h>
#include <afs/param.h>
#include <afs/afssyscalls.h>
#include <afs/vice.h>
#include <afs/vioc.h>
int
main(void)
{
struct ViceIoctl iob;
afs_uint32 pag;
int code;
iob.in = NULL;
iob.in_size = 0;
iob.out = (void *) &pag;
iob.out_size = sizeof(pag);
code = pioctl(NULL, VIOC_GETPAG, &iob, 0);
if (code != 0) {
fprintf(stderr, "Cannot get PAG\n");
return 1;
}
printf("PAG number is: %lu\n", (unsigned long) pag);
return 0;
}
; 몇 가지 명령을 실행하여 말하십시오. 대부분 현재 프로세스의 보충 그룹 목록을보고 매우 높은 번호의 그룹을 찾아 PAG 번호를 결정할 수 있습니다. 그러나 이것이 현재 대부분 "작동"하는 동안,이 정보가 부정확 한 경우도 있으며 모든 플랫폼에서 앞으로는 작동하지 않을 수도 있습니다. 특히 현대 리눅스에서는 PAG 번호의 권위있는 위치가 커널 키링에 있으며 그룹 ID를 제공하는 것은 "최선의 노력"일 뿐이며 앞으로는 사라질 수도 있습니다.
답변에 게시 된 링크의 세부 정보를 추가 할 수 있습니까? URL이 끊어 지거나 시간이 지남에 따라 변경 될 수 있으므로 링크 응답은 권장되지 않습니다. – indivisible
@mbs 완료; 감사. – adeason