title: windows cmd.exe intereaction with other apps with the pipe
body: <p>I have read about windows console applications recently and the pipes. I know that cmd.exe is just another console application. I have been reading this article <a href="http://msdn.microsoft.com/en-us/magazine/cc164014.aspx#S1" rel="nofollow">http://msdn.microsoft.com/en-us/magazine/cc164014.aspx#S1</a>. What I am questioning myself and maybe is a question not to simple to answer is that when I execute a program from the cmd.exe and redirect the stdout of that first application to a second application's stdin, from what I read cmd.exe do all he needs to do to redirect the standard stdin and stdout to point to the right places. My question is how cmd.exe do this. I mean application 1 and application 2 are already compiled and cmd.exe is another application. What I thought is that cmd.exe have some kind of funcions to interact with the kernel and tells the kernel how to manipulate the process start of the two applications(for example telling where the stdout and stdin of both applications should point)So from this point of view it is the kernel that is told by cmd to start the applications with another stdin and stdout. Probably I'm wrong but I just wanted to have a litte more of the insight of the process in a pipe. </p>