Vos programmes:
Vous allez écrire deux programmes (les deux dans la même langue). Le programme de stockage extrait une chaîne de STDIN d'une chaîne persistante (voir ci-dessous), puis se ferme sans erreur. Le programme de récupération ne prend aucune entrée, récupère la chaîne qui a été stockée et l’imprime sur STDOUT.
Test objectif de persistance:
Vous devriez pouvoir exécuter le programme de stockage sur votre ordinateur local, puis redémarrer votre ordinateur local, puis appeler le programme d'extraction sur votre ordinateur local. Vous pouvez cacher la chaîne comme vous le souhaitez (même sur le Web) tant que vous passez ce test de redémarrage.
Cas de test:
Stockage puis récupération:
echo foo | Store
Retrieve
foo
Les magasins répétés doivent écraser (comme une méthode set ()):
echo foo | Store
echo bar | Store
Retrieve
bar
La récupération répétée est non destructive (comme une méthode get ()):
echo foo | Store
Retrieve
foo
Retrieve
foo
Récupération avant toute invocation de stockage:
Vous n'avez pas besoin de vous inquiéter à ce sujet. Votre programme de récupération peut supposer que le programme de stockage a été exécuté à un moment donné dans le passé.
Flexibilité d'entrée / sortie.
Les gens m'ont demandé de développer cela de strict STDIN / STDOUT aux règles IO standard. Je ne peux pas parce que cela introduirait trop d'échappatoires. Certaines options IO standard ont déjà l’entrée stockée de manière persistante, par exemple "les programmes peuvent prendre l’entrée d’un fichier". Je voudrais être plus flexible que simplement STDIN et STDOUT, mais sans ouvrir les vannes.
Dans le fil standard des règles IO, je choisis ceux qui ne relèveront pas le défi:
Les programmes peuvent recevoir des entrées via des invites graphiques et des invites de ligne de commande si vous le souhaitez.
Les programmes peuvent sortir en l'affichant à l'écran Cela inclut les dialogues d'interface graphique
Les programmes peuvent prendre des entrées via des arguments en ligne de commande
Les programmes peuvent sortir sur STDERR mais ne peuvent toujours pas générer d' erreurs.
Si vous utilisez une alternative, elle doit être interactive avec l'utilisateur. L'utilisateur ne devrait pas avoir à effectuer d'autres tâches que celle de transférer son entrée dans votre programme, de le saisir dans une invite fournie par votre programme ou de saisir une entrée en tant qu'argument de ligne de commande de votre programme. L'utilisateur ne devrait pas avoir à faire autre chose que d'exécuter votre programme de récupération pour voir la sortie affichée à l'écran ou envoyée à STDOUT ou à STDERR.
Hypothèses autorisées:
- Vos deux programmes seront exécutés dans le même répertoire
- Vos programmes ont des autorisations en lecture-écriture pour ce répertoire
- Les fichiers que vous créez survivront au redémarrage (pas dans un répertoire temporaire)
- Une nouvelle ligne finale qui ne faisait pas partie de la chaîne est autorisée. Aucun autre espace de fuite
C'est du code-golf et votre score est la somme des octets des deux programmes.
Store
?
echo $@>x
etcat x
est valide?