/* * BSD style wtmp updating routine Version 1.0 (c) S.R.Usher 1991. */ #include #include #include #define WTMP_FILE "/var/adm/wtmp" void write_wtmp(line, name, host, time) char *line; char *name; char *host; unsigned long time; { FILE *fp; struct utmp entry; if ((fp = fopen(WTMP_FILE, "a")) == NULL) { #ifdef DEBUG perror("write_wtmp"); #endif return; } /* * Note, doing this in this order means that it doesn't matter about the Null * bytes strncpy adds the the strings if they are greater than 8/16 bytes! */ strncpy(entry.ut_line, line, 8); strncpy(entry.ut_name, name, 8); strncpy(entry.ut_host, host, 16); entry.ut_time = time; fwrite(&entry, sizeof(struct utmp), 1, fp); fclose(fp); }