When a command is piped to another command in what way or in what format does the piped output exist/get sent? Is it a temporary file? Is it a string? And how does the command that receives the piped output decode/read that output?
Example:
echo "Someone string" | ./program | tail
Does the program "program" receive the output of echo as a file?
How would the program read in that input?
 
                