#include <sys/param.h>
#include <sys/stat.h>

struct stat stbuf;

usage()
{
	error("stat name\n");
	exit();
}

main(ac, av)
	int	ac;
	char	*av[];
{
	register int	i;

	if (ac < 2)
		usage();
	for (i = 1; i < ac ; i++)
		dostat(av[i]);
}

dostat(name)
	char	*name;
{
	if (lstat(name, &stbuf) < 0)
		errmsg("Cannot stat '%s'.\n", name);
	printf("'%s':\n", name);
	printf("dev	: 0x%x (%d %d)\n", stbuf.st_dev,
				stbuf.st_dev >> 8, stbuf.st_dev & 0xFF);
	printf("ino	: %lu\n", stbuf.st_ino);
	printf("mode	: 0%o\n", stbuf.st_mode);
	printf("nlink	: %d\n", stbuf.st_nlink);
	printf("uid	: %d\n", stbuf.st_uid);
	printf("gid	: %d\n", stbuf.st_gid);
	printf("rdev	: 0x%x (%d %d)\n", stbuf.st_rdev,
				stbuf.st_rdev >> 8, stbuf.st_rdev & 0xFF);
	printf("size	: %d\n", stbuf.st_size);
	printf("atime	: %.24s (%d)\n", ctime(&stbuf.st_atime), stbuf.st_atime);
	printf("mtime	: %.24s (%d)\n", ctime(&stbuf.st_mtime), stbuf.st_mtime);
	printf("ctime	: %.24s (%d)\n", ctime(&stbuf.st_ctime), stbuf.st_ctime);
	printf("blksize	: %ld\n", stbuf.st_blksize);
	printf("blocks	: %ld\n", stbuf.st_blocks);
}
