title: How does "less" command get stdin input?
body: <p>I'm just wondering about this problem:
  if I can use something like "ls -al | less", less should have the ability of waiting for input from stdin. What I expected to happen is after running "less" command, the program hang up and wait for input(as a consequence of calling gets() or something like that.)</p>
  
  <p>But why in fact it showed an error message "Missing filename ("less --help" for help)" end exited?</p>
  
  <p>Thank you.</p>