在这篇文章中描述了如何启动一个程序,然后发送数据到程序的标准input(使用FIFO)。 但是如果程序已经运行了怎么办,我不能重新启动程序?
我曾经写过一个程序来做相反的操作(监视已经启动的程序的输出)。 这不是一个简单的操作; 它依靠使用ptrace()来附加进程并拦截系统调用。 当您检测到read()系统调用时,注入数据。