답변:
GUI :
커맨드 라인 :
의 소유자 확인 /dev/console
stat -f '%u %Su' /dev/console
C 프로그램에서 :
기술 Q & A QA1133 : 콘솔 사용자 로그인 상태 판별 의 C 코드 는 활성 GUI 세션을 소유 한 사용자를 판별하는 방법을 보여줍니다.
예를 들면 다음과 같습니다.
/* Adapted from QA1133:
* http://developer.apple.com/mac/library/qa/qa2001/qa1133.html
*/
#include <assert.h>
#include <SystemConfiguration/SystemConfiguration.h>
int main(int argc, char **argv) {
SCDynamicStoreRef store;
CFStringRef name;
uid_t uid;
#define BUFLEN 256
char buf[BUFLEN];
Boolean ok;
store = SCDynamicStoreCreate(NULL, CFSTR("GetConsoleUser"), NULL, NULL);
assert(store != NULL);
name = SCDynamicStoreCopyConsoleUser(store, &uid, NULL);
CFRelease(store);
if (name != NULL) {
ok = CFStringGetCString(name, buf, BUFLEN, kCFStringEncodingUTF8);
assert(ok == true);
CFRelease(name);
} else {
strcpy(buf, "<none>");
}
printf("%d %s\n", uid, buf);
return 0;
}
명령 줄을 통해, who
그리고 users
작동합니다.
who
"콘솔"을 찾으십시오. 감사.
who
빠른 사용자 전환을 사용할 때 10.4 시스템에서 사용 이 정확하지 않습니다 (GUI 세션이 활성화되어 있지만 지금 사용중인 시스템은 "콘솔"에 다른 사용자를 표시합니다). 최신 버전에서는 더 안정적 일 수 있습니다.