如何获得具有uid和名称的数组?

我可以从0迭代到99999并执行getpwnam()
但是,大多数计算机的帐户少于5个,因此并非最佳选择。我不知道是什么框架负责的,因此我不知道要寻找什么。

有没有可以遍历帐户的最佳解决方案?

编辑:在我发布后,我发现遍历帐户的getpwent()

setpwent();
struct passwd *pw;
while ((pw = getpwent())) printf("%d\n", pw->pw_uid);
endpwent();


但是,这并不表示一个帐户是否为系统偏好设置帐户。

因此,仍然如何获得系统偏好设置帐户?



编辑:我发现与此等效的命令行dscl命令。

prompt> dscl . -list /Users UniqueID
_mysql                  74
_postfix                27
_spotlight              89
_sshd                   75
_windowserver           88
_www                    70
daemon                  1
johndoe                 501
nobody                  -2
root                    0

最佳答案

使用getgrnam("staff")获取人员组的组记录。 gr_mem成员虽然没有在手册页中进行详细说明,但似乎是由NULL指针终止的用户名数组。

要查找哪些用户是管理员,请对admin组执行相同的操作。

关于cocoa - uid列表/“系统偏好设置”>“帐户”的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2983076/

10-12 14:29
查看更多