poprawione 'w' z procps
Jarek Druzd
raven w lo14.szczecin.pl
Pon, 8 Lut 1999, 12:06:18 CET
On Sat, 6 Feb 1999, Marcin 'Qrczak' Kowalczyk wrote:
> Powiedziałbym, że należałoby przypisać wynik time() na zmienną zamiast
> wywoływać dwa razy (abstrahując od sensu podawania przeciwnej różnicy
> jeśli time() jest mniejsze, którego nie rozumiem).
Roznica przeciwna jest dlatego aby nie bylo wyniku ujemnego, przez ktory
byly dzwiaczne wartosci idle'a pokazywane. Co do zmiennej to poprawilem
juz.
--
Jarek Druzd (raven w irc.pl)
-------------- następna część ---------
--- w.c.org Mon Feb 8 11:51:53 1999
+++ w.c Mon Feb 8 11:55:00 1999
@@ -78,9 +78,15 @@
/**** stat the device file to get an idle time */
static time_t idletime(utmp_t *u, char *tty) {
struct stat terminfo;
+ time_t acc_time;
+
if (stat(tty, &terminfo) != 0)
return 0;
- return time(NULL) - terminfo.st_atime;
+ acc_time = time(NULL);
+ if (terminfo.st_atime>acc_time)
+ return terminfo.st_atime - acc_time;
+ else
+ return acc_time - terminfo.st_atime;
}
/***** 7 character formatted login time */
@@ -148,7 +154,7 @@
proc_t *best;
for (i=0; i < sizeof u->ut_line; i++) /* clean up tty if garbled */
- if (isalnum(u->ut_line[i]))
+ if ((isalnum(u->ut_line[i])) || (u->ut_line[i]=='/'))
tty[i+5] = u->ut_line[i];
else
tty[i+5] = '\0';
Więcej informacji o liście dyskusyjnej pld-devel-pl