abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:00 | IT novinky

    Společnost Pebble představila (YouTube) chytré hodinky Pebble Round 2. S kulatým e-paper displejem, s open source PebbleOS a vydrží baterie přibližně dva týdny. Předobjednat je lze za 199 dolarů s plánovaným dodáním v květnu.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Humor

    Na novoroční inauguraci starosty New Yorku Zohrana Mamdaniho bylo zakázáno si s sebou přinést Raspberry Pi anebo Flipper Zero. Raspberry Pi i Flipper Zero jsou explicitně uvedeny v seznamu zakázaných věcí jak na na veřejné pozvánce, tak i na oficiálních stránkách města.

    NUKE GAZA! 🎆 | Komentářů: 18
    včera 11:33 | Nová verze

    OpenTTD (Wikipedie), tj. open source klon počítačové hry Transport Tycoon Deluxe, byl vydán v nové stabilní verzi 15.0. Přehled novinek v seznamu změn a také na YouTube. OpenTTD lze instalovat také ze Steamu.

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

    Správce oken IceWM byl vydán ve verzi 4.0.0, která např. vylepšuje navigaci v přepínání velkého množství otevřených oken.

    |🇵🇸 | Komentářů: 4
    včera 01:33 | Zajímavý projekt

    Od 1. ledna 2026 jsou všechny publikace ACM (Association for Computing Machinery) a související materiály přístupné v její digitální knihovně. V rámci této změny je nyní digitální knihovna ACM nabízena ve dvou verzích: v základní verzi zdarma, která poskytuje otevřený přístup ke všem publikovaným výzkumům ACM, a v prémiové zpoplatněné verzi, která nabízí další služby a nástroje 'určené pro hlubší analýzu, objevování a organizační využití'.

    NUKE GAZA! 🎆 | Komentářů: 5
    1.1. 16:44 | IT novinky

    S koncem roku 2025 skončila standardní podpora operačního systému HP-UX (Hewlett Packard Unix).

    Ladislav Hagara | Komentářů: 10
    1.1. 14:33 | Nová verze

    K 1. lednu 2026 končí 70leté omezení majetkových autorských práv děl autorů zesnulých v roce 1955, viz 2026 in public domain. V americkém prostředí vstupují do public domain díla z roku 1930, viz Public Domain Day.

    |🇵🇸 | Komentářů: 3
    31.12. 15:00 | Nová verze

    Všem vše nejlepší do nového roku 2026.

    Ladislav Hagara | Komentářů: 12
    31.12. 13:33 | Zajímavý software

    Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.60. Vyzkoušet lze online demo.

    Ladislav Hagara | Komentářů: 0
    31.12. 12:11 | Zajímavý článek

    Daniel Stenberg na svém blogu informuje, že po strncpy() byla ze zdrojových kódů curlu odstraněna také všechna volání funkce strcpy(). Funkci strcpy() nahradili vlastní funkcí curlx_strcopy().

    Ladislav Hagara | Komentářů: 6
    Které desktopové prostředí na Linuxu používáte?
     (0%)
     (5%)
     (0%)
     (17%)
     (33%)
     (12%)
     (5%)
     (5%)
     (12%)
     (33%)
    Celkem 66 hlasů
     Komentářů: 1, poslední včera 06:15
    Rozcestník

    Dotaz: Perl, printf(stderr vs. print.

    25.1.2013 10:53 saf | skóre: 3
    Perl, printf(stderr vs. print.
    Přečteno: 333×
    Zdravím, řeším takový problém. Jak udělat aby fungoval normální print v tomto programu mi to nějak nejde:

    ### definice serioveho rozhrani

    $port = "/dev/ttyUSB0"; # je COM1

    ### sada s stty nastavení portů

    system "stty 57600 -F /dev/ttyUSB0 < $port";

    ### Otevřít COM port jako

    open(COM, "+>$port") or die "nelze otevřít $port";

    select(COM); # COM jako standardní I/O Nastavení

    $| = 1; # Tabulka jediná záležitost není bufferu =

    ### Odešle Q1 na UPS pro váš stav

    printf("t"); # UPS nemá rád normální konec řádku

    #sleep(1) # 2400 BPS je pomalý ...

    sysread(COM, my ($line), 50);

    close(COM);

    printf(stderr "Z venku balkon pokoj set.pok K\n");#OK

    printf(stderr $line); # OK

    print "$line\n"; #nefunguje

    Děkuji Saf.

    Řešení dotazu:


    Odpovědi

    25.1.2013 11:22 graviton
    Rozbalit Rozbalit vše Re: Perl, printf(stderr vs. print.
    Kterak správně problémy hlásiti:
    • co jste udělali (ok)
    • co se stalo (chybí)
    • co jste očekávali, že se stane místo toho (chybí)
    Jinak moje křišťálová koule hlásí, že sekvence
    select(COM)
    close(COM)
    print
    asi bude tisknout někam do prázdna (=zavřeného deskriptoru).
    25.1.2013 11:48 saf | skóre: 3
    Rozbalit Rozbalit vše Re: Perl, printf(stderr vs. print.
    OK, blbě jsem to napsal. Tohle je original:

    #!/opt/bin/perl

    ### Serielle Schnittstelle definieren

    $port = "/dev/ttyUSB0"; # entspricht COM1

    ### mit stty die Port-Einstellungen setzen

    system "stty 57600 -F /dev/ttyUSB0 < $port";

    ### Port als COM öffnen

    open(COM, "+>$port") or die "can't open $port";

    select(COM); # COM als standard E/A festlegen

    $| = 1; # Character einzeln ausgeben = nicht puffern

    ### Sendet Q1 an die USV zur Statusabfrage

    printf("t"); # die USV mag kein normales Zeilenende

    #sleep(1) # 2400 BPS sind recht langsam ...

    sysread(COM, my ($line), 50);

    printf(stderr "Z venku balkon pokoj set.pok K\n");

    printf(stderr $line); # Ausgabe auf Console

    close(COM);

    To funguje, program načte z RS232 do $line a pak proběhne tisk na obrazovku, to je OK. Ale když budu pokračovat dále v programu a dám print "test vystup na obrazovku\n"; tak se nic neděje.
    Řešení 1× (saf (tazatel))
    wamba avatar 25.1.2013 12:21 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Perl, printf(stderr vs. print.
    nechybí za close něco jako select(STDOUT);

    hm.. select jeden s příkazů, který jsem v perl-u ještě nikdy nepoužil :)
    This would have been so hard to fix when you don't know that there is in fact an easy fix.
    25.1.2013 12:27 saf | skóre: 3
    Rozbalit Rozbalit vše Re: Perl, printf(stderr vs. print.
    Dík, to je ono.
    25.1.2013 12:25 graviton
    Rozbalit Rozbalit vše Re: Perl, printf(stderr vs. print.
    Viz výše, select přesměruje print do COM, close ho zavře, pak už jdou všechny normální printy do nikam. Nepomohlo by select(COM) nahradit $oldfh = select(COM); a na konec dát zas select($oldfh); ?

    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.