如何实现stdin,stdout包装器?
发布时间:2020-12-15 17:09:17 所属栏目:安全 来源:网络整理
导读:我有一个运行stdin和stdout的交互式程序. 我需要创建将X发送到它的stdin的包装器,检查它是否打印Y然后 将包装器的stdin和stdout重定向到程序的stdin和stdout,就像直接执行程序一样. 怎么实现这个? X和Y可以硬编码.击?Python? 编辑:我无法运行程序两次.它
我有一个运行stdin和stdout的交互式程序.
我需要创建将X发送到它的stdin的包装器,检查它是否打印Y然后 将包装器的stdin和stdout重定向到程序的stdin和stdout,就像直接执行程序一样. 怎么实现这个? X和Y可以硬编码.击?Python? 编辑:我无法运行程序两次.它必须是一个例子. def wrap(cmd,in,expected_out): p = exec(cmd) p.writeToStdin(in) out = p.readBytes (expected_out.size()) if (out != expected_out) return fail; # if the above 4 lines would be absent or (in == "" and out == "") # then this wrapper would be exactly like direct execution of cmd connectpipe (p.stdout,stdout) connectpipe (stdin,p.stdin) p.continueExecution()
Expect用于自动运行其他程序 – 基本上你用纯文本写的东西, 启动这个程序.当它打印出“用户名”这个词时,请将其用户名发送给我.当它发送“密码”时,请将密码发送给我. 它非常适合驾驶其他程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |