Pelo menos no linux, uma vez que qualquer entrada do usuário no terminal acessará o dispositivo do usuário atual, ele faz uma chamada stat () para / dev / {tty, pts /}? * e verifica o tempo de espera dos usuários logados. De w.c:
/* stat the device file to get an idle time */
static time_t idletime(const char *restrict const tty)
{
struct stat sbuf;
if (stat(tty, &sbuf) != 0)
return 0;
return time(NULL) - sbuf.st_atime;
}
static void showinfo(utmp_t * u, int formtype, int maxcmd, int from,
...
print_time_ival7(idletime(tty), 0, stdout);
...
stat () requer apenas que as permissões execute (x) no diretório pai funcionem.