title: Checking if a file is a directory or just a file
body: <p>I'm writing a program to check if something is a file or is a directory. Is there a better way to do it than this?</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  #include &lt;sys/types.h&gt;
  #include &lt;dirent.h&gt;
  #include &lt;errno.h&gt;
  
  int isFile(const char* name)
  {
      DIR* directory = opendir(name);
  
      if(directory != NULL)
      {
       closedir(directory);
       return 0;
      }
  
      if(errno == ENOTDIR)
      {
       return 1;
      }
  
      return -1;
  }
  
  int main(void)
  {
      const char* file = "./testFile";
      const char* directory = "./";
  
      printf("Is %s a file? %s.\n", file,
       ((isFile(file) == 1) ? "Yes" : "No"));
  
      printf("Is %s a directory? %s.\n", directory,
       ((isFile(directory) == 0) ? "Yes" : "No"));
  
      return 0;
  }
  </code></pre>