10 #include <sys/types.h> 
   14 int main(
int argc, 
char* argv[])
 
   20         fprintf(stderr, 
"Usage: readdir_inode dir\n");
 
   24     dirp = opendir(argv[1]);
 
   26         perror(
"failed to open directory");
 
   32     while (dent != NULL) {
 
   33         if (strcmp(dent->d_name, 
".") != 0 && strcmp(dent->d_name, 
"..") != 0) {
 
   34             printf(
"%llu %d %s\n", (
unsigned long long)dent->d_ino,
 
   35                         (
int)dent->d_type, dent->d_name);
 
   36             if ((
long long)dent->d_ino < 0)
 
   37                fprintf(stderr,
"%s : bad d_ino %llu\n",
 
   38                         dent->d_name, (
unsigned long long)dent->d_ino);
 
   39             if ((dent->d_type < 1) || (dent->d_type > 15))
 
   40                fprintf(stderr,
"%s : bad d_type %d\n",
 
   41                         dent->d_name, (
int)dent->d_type);
 
   43             if (dent->d_type != DT_DIR)
 
   44                fprintf(stderr,
"%s : bad d_type %d\n",
 
   45                         dent->d_name, (
int)dent->d_type);
 
   50         perror(
"failed to read directory entry");