How can I read the standard output of an already-running process?
8 days ago
- #standard output
- #process management
- #system programming
- Reading standard output of an already-running process is not possible as standard handles are process properties not exposed by the system.
- Programs may behave unpredictably if standard output handles are changed asynchronously, potentially causing output failures.
- Some programs check standard output handles at startup for console or file redirection, affecting buffering and function behavior.
- Influencing standard output at process creation is recommended, such as redirecting parent process output to capture child process output.
- Technically, handle replacement or injecting a remote thread to read PEB for standard handles is possible but hacky and program-specific.
- Such solutions are often kludges resulting from management pressure or developer overconfidence, leading to risky implementations.
- Risk analysis is essential; sometimes, stating software limitations is better than implementing fragile workarounds.