Capturing output
Pane::capture returns captured text through a result that must be checked.
The complete program splits that text into lines and compares a whole line
before its deadline. Capture options select history and bound the output size;
an exceeded output limit is reported as an error.
Run the complete program¶
Capture pane output includes the full
C++ program, all imports, project files and a run command. The program
matches libtmux capture ready as a complete line, so the echoed command cannot
satisfy the check. It creates and cleans up its own tmux server.
Visible pane vs. scrollback¶
A capture reads terminal state. Lines that have scrolled beyond retained history are unavailable, and repeated captures can miss intermediate output. Choose the range your task needs and use a stream or completion signal when every output event matters.
Wait for the expected text¶
Use a deadline and a specific output predicate. The example’s short polling pause limits work between checks; it is the observed line that determines completion. Sending keys explains why returning from the input call is not a completion signal.
Wait for a completion signal¶
A program can also signal a dedicated tmux channel. Use the same server endpoint for the sender and waiter and a new channel name per task. Waiting and retrying documents this port’s waiting APIs and failure handling.