В Turtle, как мне взять стандартный вывод из программы, обработать его, а затем передать что-то в стандартный вывод?
В настоящее время я играю с атаками форматной строки в C. У меня есть игрушечная программа, которая печатает stdout
) адрес переменной, к которой я хочу получить доступ, затем принимает строку из stdin
а также printf
сидеть..
Используя Turtle, я хотел бы иметь возможность:
- выполнить программу
- разобрать первые несколько строк
stdout
чтобы получить адрес - используя адрес, создайте строку формата для
printf
(Я знаю как это сделать) - написать строку атаки
stdin
Однако я не вижу, как это сделать. Используя функцию как inshell :: Text -> Shell Line -> Shell Line
Я могу поставить несколько строк stdin
и вернуть поток из stdout
, Однако я не знаю, как вводить новые строки в stdin
прочитав пару строк из stdout
,
1 ответ
Если ваша цель - протестировать программу, которая выполняет ввод-вывод, вы можете использовать shelltestrunner
(проект написан на Haskell), если вы хотите протестировать сценарии ввода-вывода для каждого проекта (не обязательно написанного на Haskell).