When a console application is started from another console application, how does console ownership work?
I see four possibilities:
- The second application inherits the console from the first application for its lifetime, with the console returning to the original owner on exit.
- Each application has its own console. Windows then somehow merges the content of the two into what the "console" visible to the user
- The second application get a handle to the console that belongs to the first application.
- The console is placed into shared memory and both applications have equal "ownership"
It's quite possible that I missed something and none of these four options adequately describe what Windows does with its consoles.
If the answer is close to option 4. My follow-up question is which of the two processes is responsible for managing the window? (Handling graphical updates when the screen needs to be refreshed / redrawn, etc)
A concrete example: Run CMD. Then, using CMD, run [console application]. The [console application] will write to what appears to be the same console window that CMD was using.