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 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
včera 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 4
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 10
20.1. 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
20.1. 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
20.1. 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

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

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (10%)
Celkem 363 hlasů
 Komentářů: 25, poslední 21.1. 13:34
Rozcestník
Reklama

Dotaz: Kam se ukládájí data co uživatel stiskl na klávesnici?

25.10.2012 01:43 Jakub
Kam se ukládájí data co uživatel stiskl na klávesnici?
Přečteno: 829×
Ahoj. Pokud vytvořím script, který pomocí read čeká na nějaké vstupní data, v mém případě na stisknutí požadované klávesy, stane se to, že po stisknutí se provede požadovaná akce, super, co ale když uživatel stiskne vícekrát tlačítka zasebou? Script zpracovává jeden požadavek podruhém než se zpracují všechny stisknutá tlačítka. Kde je ta fronta toho co všechno uživatel stisknul? Nemůžu ty data v té frontě nějak vysypat/resetnout/vyprázdnit/zabít? Dík

Odpovědi

25.10.2012 02:04 pc2005 | skóre: 32 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Teoreticky by to šlo, ale kromě ladících programů a malware mě zrovna nenapadá žádná aplikace, kde by se to používalo, nebo mělo nějaký užitek. Opravdu nejde navrhnout aplikace tak, aby jí víc kláves nevadilo?

P.S. Pokud myslíš read z bashe, tak bude po cestě z klávesnice možná víc než jeden buffer. Zběžně: něco bude v ovladači klávesnice (USB, PS/2, GPIO nebo kotel dalších). Další bude v input subsystému kernelu, tty driveru a možná něco v bashi na stdin (a to nepočítám Xka a překlady rozložení klávesnice).
Chuck Norris řekl babičce, že si dá jen 3 knedlíky. A dostal 3 knedlíky. | 帮帮我,我被锁在中国房
25.10.2012 02:20 Jakub
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Ano, jedná se o read v Bash. No ják lépe navrhnout aplikaci nevim když je to v cyklu, a reaguje to na každé stisknutí klávesy..:-(
25.10.2012 02:26 pc2005 | skóre: 32 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Bez znalosti toho, co ta aplikace po přijmutí znaku má udělat, nemůžu radit.
Chuck Norris řekl babičce, že si dá jen 3 knedlíky. A dostal 3 knedlíky. | 帮帮我,我被锁在中国房
25.10.2012 11:13 Semo | skóre: 44 | blog: Semo
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
read ma parameter -t. read -t0 le otestuje, ci je vstupny buffer neprazdny. Takze ho mozes vycistit cyklom s read -t0 x && read -n1 x a az potom spustit ostry read pre data od usera. Ale nenapada ma, ako to dobre otestovat, pretoze to funguje iba pri citani z terminalu, pipy a pod.
If you hold a Unix shell up to your ear, you can you hear the C.
25.10.2012 12:44 Jakub
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Myslel jsi takto? Díky
while true
do
   if [[ -t read -t0 le ]]
   then
      read -t0 x && read -n1 x 
   else
      break
   fi
done
25.10.2012 14:08 Semo | skóre: 44 | blog: Semo
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Skor nejak takto.
while true; do
    if read -t0 x; then
        read -n1 x 
    else
        break
    fi
done

# mame cisty buffer
Ale ci to funguje, to si musi otestovat ten, kto to bude pouzivat. Este mozno to -n1 je tam asi zbytocne - netreba cistit po jednom znaku, moze sa po riadkoch.
If you hold a Unix shell up to your ear, you can you hear the C.
21.3.2013 22:50 Zadejte vaše jméno
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Ahoj

Co znamená to krát/x? Děkuji
while true; do
    if read -t0 x; then
        read -n1 x 
    else
        break
    fi
done
21.3.2013 23:05 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Proměnná, do které se ten znak či řádek načtou. V podstatě to může zde být cokoliv, protože jde jen o vyčištění bufferu.
21.3.2013 23:25 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
V Bash tam nemusí být vůbec nic, když to stejně nepotřebujeme.
Josef Kufner avatar 25.10.2012 14:52 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Pointa je v tom, že terminál předává stisky kláves na stdin programu, ale ten stdin je, stejně jako každý jiný souborový proud, opatřen bufferem, kde se můžou namačkané klávesy nahromadit. Obvykle je to vcelku žádoucí, protože se ti neztrácí písmenka.

Pokud ale chceš od uživatele potvrzení nějaké kritické akce, je vhodné tento buffer vyprázdnit těsně před položením dotazu (viz odpovědi výše). Pokud ale jde o běžné zadávání dat, kašli na to, bude to uživatele otravovat.
Hello world ! Segmentation fault (core dumped)
25.10.2012 18:19 Jakub
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Tak mě to teda nefunguje :-( Škoda, už jsem měl docela radost, že se našlo řešení mého problému...
26.10.2012 10:21 Jakub
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Vážně nikdo neporadí proč to nejde?
26.10.2012 11:56 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Toto trochu funguje:
#!/bin/bash
input1=''
echo "Input 1:"
read input1

echo "Write anything:"
sleep 5

input2=''
read -t 1 -n 255
echo "Input 2:"
read input2

echo "Input 1: ${input1}"
echo "Input 2: ${input2}"
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
26.10.2012 16:05 Ja
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
Mně funguje:
set -x; sleep 5; while read -t 0.1 -N 1 aha; do true; done; read -p ">" pokus; echo "'$pokus'"
(to "set -x" způsobuje vypisování příkazů při provádění - vypíná se to "set +x" a na funkci to nemá vliv)
26.10.2012 19:14 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
> read -t 0.1
-bash: read: 0.1: invalid timeout specification
>  read -N 1
-bash: read: -N: invalid option
read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...]
>  read -t 0.1 -N 1
-bash: read: 0.1: invalid timeout specification
>  read -t 1 -n 1 −> OK
Toš tak :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
29.10.2012 08:47 Ja
Rozbalit Rozbalit vše Re: Kam se ukládájí data co uživatel stiskl na klávesnici?
hm, asi stará verze shellu
$ bash --version
GNU bash, verze 4.2.37(1)-release (i686-redhat-linux-gnu)
to asi moc neporadím :-(

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.