Ваші програми:
Ви напишете дві програми (обидві однією мовою). Програма зберігання приймає рядок від STDIN і зберігає її десь стійкою (див. Нижче), а потім виходить без помилок. Програма пошуку не приймає даних, витягує рядок, який був збережений, і друкує її до STDOUT.
Об'єктивний тест на стійкість:
Ви повинні мати змогу запустити програму зберігання даних на локальній машині, а потім переключити живлення на локальну машину, а потім викликати програму пошуку на локальній машині. Ви можете зберігати рядок, як вам захочеться (навіть в Інтернеті), поки ви пройдете цей тест перезавантаження.
Випробування:
Потім зберігання:
echo foo | Store
Retrieve
foo
Повторні магазини повинні замінити (як метод set ()):
echo foo | Store
echo bar | Store
Retrieve
bar
Повторне отримання не руйнує (як метод get ()):
echo foo | Store
Retrieve
foo
Retrieve
foo
Отримання перед будь-яким викликом пам’яті:
Вам не потрібно з цього приводу хвилюватися. Ваша програма пошуку може припустити, що програма зберігання була запущена в якийсь момент минулого.
Гнучкість введення / виводу
Люди попросили мене розширити це від суворого STDIN / STDOUT до стандартних правил IO. Я не можу, бо це введе занадто багато лазівки. У деяких стандартних параметрах вводу-виводу вже вхід зберігається послідовно, наприклад, "програми можуть приймати дані з файлу". Я хотів би бути більш гнучким, ніж просто суворі STDIN та STDOUT, але без відкриття шлюзів.
Зі стандартних ниток правил вводу-виводу я вибираю вишні, які не порушують завдання:
Програми можуть приймати введення через підказки GUI та підказки командного рядка, якщо ви хочете
Програми можуть виводитись, відображаючи їх на екрані. Сюди входять діалоги GUI
Програми можуть приймати дані через аргументи командного рядка
Програми можуть виводити на STDERR, але насправді не можуть виправити помилки.
Якщо ви використовуєте альтернатив, він повинен бути інтерактивним. Користувачеві не слід виконувати будь-яку іншу роботу, окрім того, щоб передавати вхід у вашу програму, вводити його у підказку, яке надає ваша програма, або вводити введення як командний рядок-аргументу вашої програми. Користувачеві не слід нічого робити, крім запуску програми для отримання, щоб побачити вихід, який відображається на екрані або надісланий STDOUT або STDERR.
Дозволені припущення:
- Ваші дві програми будуть запускатися в одному каталозі
- Ваші програми мають дозволи для читання та запису для цього каталогу
- Файли, які ви створюєте, переживуть перезавантаження (не в темп режимі)
- Допускається одна нижня лінія рядка, яка не була частиною рядка. Немає інших пробілів
Це код-гольф, а ваш рахунок - це сума байтів обох програм.
Store
?
echo $@>x
іcat x
чинне?