2009-07-29 46 views
1

我正在编写一个作为Mac OSX中的系统服务运行的软件,似乎无法找到如何获取“活动”用户。OSX - 从系统服务中检索登录用户的用户标识

似乎有API可以遍历登录用户列表,并能够从某个值获知机器控制台的值,但是我找不到这些API的任何文档。

看着/dev,看起来/dev/console设备是由当前登录的用户拥有的...但是我一直无法找到任何文档来确认这一点。

任何想法?

回答

2

回答礼貌苹果Technical Q&A

  • 要求SystemConfiguration.framework

    #include <SystemConfiguration/SystemConfiguration.h> 
    /* .... */ 
    CFStringRef result = SCDynamicStoreCopyConsoleUser(NULL, NULL, NULL); 
    /* .... */ 
    

,或者使用了utmpx API来获取所有登录的帐户从中你应该是一个列表能够获得必要的信息...

1

您可以使用getuidgetgid来获取用户的用户ID和组ID。您可以使用getlogingetlogin_r检索当前用户名称的字符串表示形式。您可以通过getpwuid获取更多用户信息。

作为一个侧面说明,“男人”是你的朋友。每当你有疑问,请咨询UNIX Manual Pages。的

+0

对不起,我没有完全明白你在问什么。我不认为你可以得到“活跃”用户,因为总有可能一次有多个用户登录。如果您想为特定用户执行某些操作,则可能需要创建一个每用户启动代理。 – 2009-07-30 08:02:27