/* Filnavn = monitor.c */

#include <stdio.h>

#define TXT1 "Monitor Version 2.1"
#define TXT2 "syntax: monitor <filename>"
#define TXT3 "(c) Synkro engineering 2009"
# define X 16

int main(int a, char *filnavn[])
{
	int i = 0, k = 0;
	int j;
	short int ch[X];
	FILE *fp;

	if ((fp = fopen(filnavn[1], "r")) != NULL)
	{
		while ((ch[i] = getc(fp)) != EOF)
		{
			i++; k++;
			if ( !(i % X) )
			{
				for (j = 0; j < i; j++)
					printf("%3x", ch[j]);
				printf("\t");
				for (j = 0; j < i; j++)
					if (ch[j] >= '!' && ch[j] <= 'z')
						printf("%c", ch[j]);
					else
						printf("%c", '.');
				printf(" k=%d\n",k);
				i = 0;
			}
		}
		if ( (i % X) )
		{
			for (j = 0; j < i; j++)
				printf("%3x", ch[j]);
			for (j = 0; j < X - i; j++)
				printf("   ");
			printf("\t");
			for (j = 0; j < i; j++)
				if (ch[j] >= '!' && ch[j] <= 'z')
					printf("%c", ch[j]);
				else
					printf("%c", '.');
			for (j = 0; j < X - i; j++)
				printf(" ");
			printf(" k=%d\n",k);
		}
		printf("\n\n%s%s%d%s\n", filnavn[1], " indeholdt ", k, " byte.");
	}
	else
		printf("\n%s\n%s\n%s\n\n", TXT1, TXT2, TXT3);
	close (filnavn);
	return 0;
}

