Portál AbcLinuxu, 28. července 2025 19:02
mkfifo pipe ./sic < pipe > out & echo "Prikaz" > pipea program "sic je okamzite ukoncen s hlaskou "Broken pipe". pritom pokud ho spustim z konzoly se standard vstupem/vystupem, funguje bezchybne az dokud nedam Ctrl-D a pote se korektne ukonci. Jenom bych poznamenal, ze pracuji na Mac OS X, ale to by snad nemelo hrat roli (doufam). Nemate nekdo napad, co s tim? Diky.
cat
?
Zbezne jsem vcera prohledl zdrojak a na prvni pohled se me zdal v poradku. Ovsem nemam zadne velke zkusenosti s programovanim UNIX aplikaci, takze jsem mozna neco prehledl. S tim cat
to zkusim.
Pokud bych jeste mohl vyuzit teto diskuse, rad bych si vyjasnil jeste jednu vec. Jak jsem pochopil, pokud zadam napr. echo "Ahoj" > pipe
, tak to zrejme posle i EOF a roura se uzavre. Co kdybych ovsem chtel poslat napriklad to "Ahoj" a chtel nechat rouru otevrenou s tim, ze do ni za nejaky cas opet poslu dalsi text? Je nejake reseni?
echo "Ahoj"
žádné EOF nepošle. Akorát pošle EOL (end of line), čemuž se dá zabránit přepínačem -n
.
echo
žádný EOF
nepošle, akorát, že shell pos končení echo zavolá na příslušný konec té roury close()
, což udělá prakticky totéž. Spokojený?
tail -f pipe | ./sic
cat
nebo dc
"Broken pipe" nevyhazuje. Jeste jednou diky vsem.
Ono ten program sic je jednoduchy IRC klient, ktery ma primo v popisu prace interakci s konzolou a to ovladani pres rouru bylo jaksi navic a autori s tim asi nepocitali. Kdyby neexistoval jeste program ii od stejnych autoru, na ktery jsem narazil az ted, tak bych urcite "sic" nejak upravil, ale takhle to postrada smysl, protoze "ii" je pro tyhle ucely vhodnejsi :)
Jinak jeste, proc jsem to chtel...Rikal sem si, ze bych si mohl zabudovat IRC do editoru Vim (existuje VimIRC, ale to me nejak moc dobre nefunguje). Puvodne jsem chtel pouzit "sic", ale pak jsem narazil na "ii" a s jeho pomoci se to podarilo a uz to funguje.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.