gpt4 book ai didi

c - 如何重置 getutent() 的指针

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:12 25 4
gpt4 key购买 nike

以下是我正在处理的最终代码。我可以使用 sleep() sleep 并再次显示其他消息,但我无法打印我最初想要的内容,它位于第二个 while 循环 中。据我测试,while((ptr=getutent()) != NULL) 会是问题所在,但我不知道如何解决。如果有人能帮助我,我将不胜感激。谢谢

注意:程序每 5 秒显示一次当前登录用户,直到用户使用 Ctrl+c 停止。

#include <utmp.h>
#include <pwd.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(void)
{
struct utmp *ptr;
struct passwd *pwd;

while(1)
{

while((ptr=getutent()) != NULL)
{
if(ptr->ut_type==USER_PROCESS)
{
pwd=getpwnam(ptr->ut_user);
printf("USERNAME = %s | ID = %d | GID = %d | ",p
tr->ut_user,pwd->pw_uid,pwd->pw_gid);
printf("HomeDir = %s | HOST = %s\n",pwd->pw_dir,
ptr->ut_host);
}
}

sleep(3);
fflush(stdout);
}

}

最佳答案

您想使用 setutent() 将文件指针设置回 utmp 文件的开头。

关于c - 如何重置 getutent() 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com