我正在编写一个在Mac OSX中作为系统服务运行的软件,似乎无法找到如何获得“活跃”用户。
似乎有API可以遍历登录用户列表,并且能够从一个值中判断哪个具有机器控制台...但是我找不到关于这些API的任何文档。
查看/dev
,/dev/console
设备似乎由当前登录的用户拥有...但是我无法找到任何文档来确认这一点。
有什么想法吗?
答案 0 :(得分:2)
回答Apple的Technical Q&A
提供的答案需要SystemConfiguration.framework
#include <SystemConfiguration/SystemConfiguration.h>
/* .... */
CFStringRef result = SCDynamicStoreCopyConsoleUser(NULL, NULL, NULL);
/* .... */
或者使用utmpx API获取所有登录帐户的列表,您应该从中获取必要的信息......
答案 1 :(得分:1)
您可以使用getuid和getgid来获取用户的用户ID和组ID。您可以使用getlogin或getlogin_r来检索当前用户名称的字符串表示形式。您可以使用getpwuid获取其他用户信息。
作为旁注,“男人”是你的朋友。如果您有任何疑问,请咨询UNIX Manual Pages。