uid
내 시스템 호출을 호출하는 프로세스 실행기를 가져오려고 합니다 . 제가 사용하는 매크로 linux/cred.h
는 입니다 current_uid()
.
문제는 내가 모르는 유형인 kuid_t
. 따라서 반환 값을 int
정적 변수 유형 에 저장할 수 없습니다 . 다음은 코드 및 오류의 일부입니다.
static int getuid(void){
return current_uid();
}
static int caller_uid = getuid();
실수:
error: incompatible types when returning type ‘kuid_t’ {aka ‘const struct <anonymous>’} but ‘int’ was expected
current_cred()->xxx; \
답변1
kuid_t
linux/uidgid.h
하나의 멤버로 구성된 단순한 구조 로 정의됩니다 uid_t
.
typedef struct {
uid_t val;
} kuid_t;
uid_t
당신은 사용할 수 있어야하며 current_uid().val
단지 uid_t
가치를 얻는 것입니다 usigned int
.