title: Regarding printing characters in C
body: <pre><code>int main()
  {
      printf("Hello"); // doesn't display anything on the screen
  
      printf("\n"); // hello is display on the screen
  
      return 0;
  }
  </code></pre>
  
  <p>All characters(candidate of printing) are buffered until a new line is received? Correct?</p>
  
  <p>Q1 - Why does it wait before printing on terminal until a newline char?</p>
  
  <p>Q2 - Where are the characters of first printf (i.e. <code>"Hello"</code>) buffered?</p>
  
  <p>Q3 - What is the flow of printing <code>printf()-&gt;puts()-&gt;putchar()</code> -> now where? driver? Does the driver has a control to wait until \n?</p>
  
  <p>Q4 - What is the role stdout that is attached to a process?</p>
  
  <p>Looking for a in-depth picture. Feel free to edit the question, if something doesn't makes sense.</p>