title: What is the reason for writing the value of c again outside the loop and how are multiple values of c stored in one pipe?
body: <pre><code>printf(&quot;Enter any alphabetical character or digit [type ; to end]:&quot;);
  do{ 
      scanf(&quot;%c&quot;,&amp;c);
      if(c&gt;='0' &amp;&amp; c&lt;='9')
               write(RD[1],&amp;c,1);
      if((c&gt;='a' &amp;&amp; c&lt;='z') || (c&gt;='A' &amp;&amp; c&lt;='Z') )
               write(RA[1],&amp;c,1);
  }while(c!=';');
  
  write(RD[1],&amp;c,1);
  write(RA[1],&amp;c,1);
  </code></pre>
  <p>The values of c are already written to the pipes in the loop. Why did we write them again outside the loop?</p>
  <p>Also, how are multiple values of c stored over and over again in one pipe?</p>