[英]OSX Yosemite getutxent() returning the same user twice
我试图使用在苹果的<utmpx.h>
定义的getutxent()
函数来获取当前登录用户的列表。 我正在使用的测试代码是这样的:
#include <stdio.h>
#include <utmpx.h>
int main(void) {
setutxent();
while (1) {
struct utmpx *user_info = getutxent();
if (user_info == NULL) break;
printf("%s\n", user_info->ut_user);
}
return 0;
}
我仅用一个登录用户进行测试。 我得到的输出是这样的:
myusername
myusername
为什么我的用户名出现两次? 如果有多个用户,会发生这种情况吗?
有关我的mac的详细信息:
getutxent()
不报告用户,它报告会话。
如果您打开了多个会话(例如,终端会话),它将被记录在用户计费数据库中并被盲目检索。 您可以通过检查utmpx
结构的ut_id
和ud_line
元素来验证这一点。 对于每个ut_user
相同的实例,它们应该是不同的,因为它们ut_user
在单独的进程(和终端,如果使用的话)中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.