|
Packit |
ec106e |
/*
|
|
Packit |
ec106e |
* vcstime.c
|
|
Packit |
ec106e |
*
|
|
Packit |
ec106e |
* Show time in upper right hand corner of the console screen
|
|
Packit |
ec106e |
* aeb, 951202, following a suggestion by Miguel de Icaza.
|
|
Packit |
ec106e |
*/
|
|
Packit |
ec106e |
#include <stdio.h>
|
|
Packit |
ec106e |
#include <stdlib.h>
|
|
Packit |
ec106e |
#include <unistd.h>
|
|
Packit |
ec106e |
#include <fcntl.h>
|
|
Packit |
ec106e |
#include <time.h>
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
void fatal(char *s)
|
|
Packit |
ec106e |
{
|
|
Packit |
ec106e |
perror(s);
|
|
Packit |
ec106e |
exit(1);
|
|
Packit |
ec106e |
}
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
int number_of_columns()
|
|
Packit |
ec106e |
{
|
|
Packit |
ec106e |
int fda;
|
|
Packit |
ec106e |
unsigned char rc[2]; /* unsigned: Ranty@soon.com */
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
if ((fda = open("/dev/vcsa", O_RDONLY)) < 0 && (fda = open("/dev/vcsa0", O_RDONLY)) < 0)
|
|
Packit |
ec106e |
fatal("/dev/vcsa");
|
|
Packit |
ec106e |
if (read(fda, rc, 2) != 2)
|
|
Packit |
ec106e |
fatal("/dev/vcsa");
|
|
Packit |
ec106e |
close(fda);
|
|
Packit |
ec106e |
return rc[1];
|
|
Packit |
ec106e |
}
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
int main()
|
|
Packit |
ec106e |
{
|
|
Packit |
ec106e |
int fd;
|
|
Packit |
ec106e |
int cols = number_of_columns();
|
|
Packit |
ec106e |
time_t tid;
|
|
Packit |
ec106e |
struct tm *t;
|
|
Packit |
ec106e |
char tijd[10];
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
if ((fd = open("/dev/vcs", O_WRONLY)) < 0 && (fd = open("/dev/vcs0", O_WRONLY)) < 0)
|
|
Packit |
ec106e |
fatal("/dev/vcs");
|
|
Packit |
ec106e |
|
|
Packit |
ec106e |
while (1) {
|
|
Packit |
ec106e |
lseek(fd, cols - 10, 0);
|
|
Packit |
ec106e |
tid = time(0);
|
|
Packit |
ec106e |
t = localtime(&tid;;
|
|
Packit |
ec106e |
sprintf(tijd, " %02d:%02d:%02d", t->tm_hour, t->tm_min, t->tm_sec);
|
|
Packit |
ec106e |
write(fd, tijd, 9);
|
|
Packit |
ec106e |
usleep(500000L); /* or sleep(1); */
|
|
Packit |
ec106e |
}
|
|
Packit |
ec106e |
}
|