Joseph Ferano 1b39de32b0 A closed fd 1 is a fd 1 waiting to be handed to something else
The merged exit closes stdout so the compiler reads EOF and learns the program
has finished. POSIX then hands descriptor 1 to the next thing that asks — a
socket, a module's object file — and the llc after that inherits it as its
stdout. /dev/null takes the slot back, and the EOF is unaffected because the
pipe's write end is genuinely gone.

Verified beyond the headless suite: sand.flan builds and runs merged under
Xvfb, one process with no children, and a game-draw typed in at the socket is
drawing frames a second later.
2026-09-12 21:51:29 +07:00
..
2026-09-10 14:40:34 +07:00