#include <stdio.h> 
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[]) 
{ 
	int retval;

	if (argc < 2) {
		printf("Prints out stats for a file\n");
		printf("Usage: stat FILENAME\n");
		return -1;
	}
	struct stat st = {0};

	retval = stat(argv[1], &st);
	if (retval < 0) {
		perror("Stat failed");
		return -1;
	} else {
		printf("STAT RESULTS\n---------------------\n");
		printf("dev       : %d\n", st.st_dev);
		printf("ino       : %d\n", st.st_ino);
		printf("mode      : %o(oct)\n", st.st_mode);
		printf("nlink     : %d\n", st.st_nlink);
		printf("uid       : %d\n", st.st_uid);
		printf("gid       : %d\n", st.st_gid);
		printf("rdev      : %d\n", st.st_rdev);
		printf("size      : %d\n", st.st_size);
		printf("blksize   : %d\n", st.st_blksize);
		printf("blocks    : %d\n", st.st_blocks);
		printf("atime     : %d\n", st.st_atime);
		printf("mtime     : %d\n", st.st_mtime);
		printf("ctime     : %d\n", st.st_ctime);
	}
	return 0;
}
