Tuesday 18.3.2014 10:43:12, Jakuje
Již několikrát jsem se zamýšlel nad problémem testování, nebo prací v terminálu s aplikaci, která vyžaduje vstup jako jméno souboru a já bych chtěl soubor předzpracovat jiným programem, nebo vložit jednoduchý text bez toho abych musel vytvářet opravdový soubor.
Řešením jsou virtuální soubory typu FIFO. Zápis je jednoduchý a tedy <(cmd) pro vstup a odbobně >(cmd) pro výstup. Jediný rozdíl oproti obyčejným souborům je, že program se nemůže v souboru pohybovat (seek).
V praxi je použití jednoduché. Poprvé jsem tuto vlastnost BASHe použil ve své bakalářské práci pro porovnávání souborů, které měly jednotlivé atributy různě seřazené a jediným řádkem jsem schopen tyto dva soubory (původně binární, převedené na XML) porovnat.
Podobně dnes potřebuji testovat program a nechce se mi vytvářet dočasné soubory. Proto mohu jako vstup našeho překladače v Haskellu vložit řetězec jako vstupní soubor. Tedy asi takto: