#include <sys/types.h>
#include <sys/dir.h>

main(argc, argv)
int argc;
char **argv;
{
	char *dir;
	int i, j, fd;
	struct direct dbuf[1024];

	/*
	 * If no directory is given, then
	 * look at current directory.
	 */
	if (argc < 2) 
		dir = ".";
	else
		dir = argv[1];
	
	if ((fd = open(dir, 0)) < 0) {
		printf("Cannot open %s\en", dir);
		exit(1);
	}

	/*
	 * Read in the directory, and then compute
	 * number of structures read in.
	 */
	j = read(fd, dbuf, 1024 * sizeof(struct direct));
	j /= sizeof(struct direct);

	close(fd);

	printf("The entries in %s are:\en", dir);

	for (i=0; i < j; i++) {
		/*
		 * Skip non-existent files
		 */
		if (dbuf[i].d\(ulino == 0)
			continue;

		printf("\et%14.14s\en", dbuf[i].d\(ulname);
	}
}
