#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");
	} 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);
	}
}
