title: How many memory copies occur when I read from TCP socket
body: <p>My application runs <code>read(sockfd, buffer, BUFFSIZE, 0)</code>. I know the kernel needs to do some copy work behind the scene. How many memory copies occur when <code>buffer</code> is allocated on the stack, and will it change if <code>buffer</code> is allocated on the heap?</p>
  
  <p>Thanks.</p>