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