84 lines
2.2 KiB
Diff
84 lines
2.2 KiB
Diff
--- lastcomm.c
|
||
+++ lastcomm.c
|
||
@@ -48,6 +48,10 @@
|
||
|
||
#include <pwd.h>
|
||
|
||
+#ifdef HAVE_UNISTD_H
|
||
+#include <unistd.h>
|
||
+#endif
|
||
+
|
||
#include "common.h"
|
||
#include "uid_hash.h"
|
||
#include "dev_hash.h"
|
||
@@ -65,7 +69,7 @@
|
||
int strict_match_flag = 0; /* Nonzero if each record has to match
|
||
all items on the command line */
|
||
int print_controls = 0; /* don't print control characters */
|
||
-int ahz = AHZ; /* for viewing logs from another system */
|
||
+int ahz = 0; /* for viewing logs from another system */
|
||
|
||
char *program_name; /* name of the program, for usage & errs */
|
||
|
||
@@ -88,7 +92,6 @@
|
||
int get_entry PARAMS((struct acct **));
|
||
int desired_entry PARAMS((char *, char *, char *));
|
||
|
||
-
|
||
/* code */
|
||
|
||
void
|
||
@@ -288,6 +291,14 @@
|
||
print_pacct_record (rec, stddebug);
|
||
}
|
||
|
||
+ if (!ahz) // if this is the first cycle run, ahz is not set yet
|
||
+ {
|
||
+ if (rec->ac_version == 3)
|
||
+ ahz = 100; // value AHZ = 100 is hardcoded in acct.h, but in #ifdef __KERNEL__ block. too bad
|
||
+ else
|
||
+ ahz = sysconf(_SC_CLK_TCK);
|
||
+ }
|
||
+
|
||
if (desired_entry (this_uid, this_dev, rec->ac_comm))
|
||
{
|
||
#ifdef HAVE_COMP_T
|
||
--- sa.c
|
||
+++ sa.c
|
||
@@ -174,7 +174,7 @@
|
||
int print_users = 0;
|
||
int percentages = 0; /* include percentages in printout */
|
||
int user_summary_flag = 0; /* are we printing a user summary? */
|
||
-int ahz = AHZ; /* for viewing logs from another system */
|
||
+int ahz = 0; /* for viewing logs from another system */
|
||
|
||
|
||
#if defined(HAVE_ACUTIME) && defined(HAVE_ACSTIME)
|
||
@@ -262,7 +262,6 @@
|
||
int ask_if_junkable PARAMS((char *, int));
|
||
|
||
|
||
-
|
||
/* code */
|
||
|
||
void
|
||
@@ -1116,6 +1115,18 @@
|
||
/* loop while there are entries to be had */
|
||
while ((rec = pacct_get_entry ()) != NULL)
|
||
{
|
||
+ if (!ahz) // if this is the first cycle run, ahz is not set yet
|
||
+ {
|
||
+ if (rec->ac_version == 3)
|
||
+ ahz = 100; // value AHZ = 100 is hardcoded in acct.h, but in #ifdef __KERNEL__ block. too bad
|
||
+ else
|
||
+ ahz = sysconf(_SC_CLK_TCK);
|
||
+
|
||
+ if (debugging_enabled)
|
||
+ {
|
||
+ fprintf (stddebug, "AHZ -> %d\n", ahz);
|
||
+ }
|
||
+ }
|
||
#ifdef HAVE_ACUTIME
|
||
# ifdef ACUTIME_COMPT
|
||
double ut = comp_t_2_double (rec->ac_utime) / (double) ahz;
|