abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 6
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 45
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 876 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Jak zrušit pipe mód přest system() v Perlu

    19.4.2017 12:17 RM
    Jak zrušit pipe mód přest system() v Perlu
    Přečteno: 275×
    Měl bych záludný dotaz nejen na uživatele Perlu ohledně použití roury. Co se týče roury, vycházím z těchto předpokladů: Při napojení roury na vstup se vytvoří spojení STDOUT->|->STDIN a u druhého programu se tedy nastaví filedeskriptor 0 na čtení z roury (/proc/$$/fd/0). Dovolil jsem si to nazvat jako (pipe mód). Na základě toho pak změní své chování program, protože deskriptor (tedy mód) se dědí. Takhle nějak to chápu, a jde mi o to, nějak toto dědění potlačit. Problém se dá minimalizovat do perlího one-lineru takto:
    echo "ahoj" | perl -ne 'print $_; system(vim, /tmp/file.test) '
    Potřebuji nějak pracovat se vstupem ze STDIN (zde puze print) a pak použít system(), který dědí filedeskriptor napojený na rouru a dle toho se program vim zachová tak, že očekává vstup přes STDIN, k čemuž by ale potřeboval místo zadaného souboru pomlčku; takže si zanadává a v mém případě rozbije terminál. Zkoušel jsem zavřít STDIN, ale to nepomůže, protože pipe mód (zřejmě stále platné /proc/$$/fd0) zůstane. Je nějaký způsob jak před system() nebo exec() zrušit pipe mód a program spustit normálně?

    Odpovědi

    19.4.2017 13:32 Lyco | skóre: 14 | blog: Lyco
    Rozbalit Rozbalit vše Re: Jak zrušit pipe mód přest system() v Perlu
    Připoj vimu na stdin svůj řídící terminál, viz také https://linux.die.net/man/4/tty

    ve tvém případě funguje primitivní úprava:
    echo "ahoj" | perl -ne 'print $_; system("vim /tmp/file.test </dev/tty")'
    Pokud už řídící terminál nemáš, můžeš použít expect, nebo si nastudovat jak se pracuje s pseudoterminálem.
    Příspěvek se rázem stává až o 37,5 % pravdivější, je-li pod ním napsáno reálné jméno.
    19.4.2017 18:12 RM
    Rozbalit Rozbalit vše Re: Jak zrušit pipe mód přest system() v Perlu
    Zdá se, že spouštět kvůli tomu shell není třeba. Tohle funguje také:
    echo "ahoj" | perl -ne 'print $_; open STDIN, "/dev/tty" ;system qw(vim /tmp/file.test)'
    Takže díky moc, informace pomohla.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.