title: What's the difference between binary and executable files mentioned in ndisasm's manual?
body: <p>I want to compile my C file with <code>clang</code> and then decompile it with with <code>ndisasm</code> (for educational purposes). However, <code>ndisasm</code> says in it's manual that it only works with <em>binary</em> and not <em>executable</em> files:</p>
  
  <pre><code>   ndisasm only disassembles binary files: it  has
     no  understanding  of  the  header  information
     present in object or executable files.  If  you
     want  to disassemble an object file, you should
     probably be using objdump(1).
  </code></pre>
  
  <p>What's the difference, exactly? And what does <code>clang</code> output when I run it with a simple C file, an executable or a binary?</p>