Blame contrib/vcstime.c

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
}