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í
×

dnes 12:33 | Komunita

Příspěvek na blogu Signalu (Wikipedie) informuje o založení neziskové nadace Signal Foundation, jež bude zastřešovat další vývoj tohoto svobodného bezpečného komunikátoru běžícího také na Linuxu (Signal Desktop). Brian Acton, spoluzakladatel WhatsAppu, věnoval nadaci 50 milionů dolarů [Hacker News].

Ladislav Hagara | Komentářů: 0
dnes 05:55 | Zajímavý článek

Článek na Fedora Magazine krátce představuje programovací jazyk Rust a několik zajímavých v Rustu naprogramovaných terminálových aplikací. Jedná se o alternativu k příkazu grep ripgrep, moderní barevnou alternativu k příkazu ls exa, příkazem cloc inspirovaný tokei a zvířátko v terminálu ternimal.

Ladislav Hagara | Komentářů: 0
včera 23:55 | Zajímavý projekt

Byl spuštěn Humble Classics Return Bundle. Za vlastní cenu lze koupit hry Broken Sword 5 - The Serpent's Curse, Shadowrun Returns a Shadowrun: Dragonfall - Director's Cut. Při nadprůměrné platbě (aktuálně 8,48 $) také Shadowrun: Hong Kong - Extended Edition, Wasteland 2: Director's Cut - Standard Edition, Age of Wonders III a Xenonauts. Při platbě 15 $ a více lze získat navíc Torment: Tides of Numenera a Dreamfall Chapters: The Final Cut Edition.

Ladislav Hagara | Komentářů: 0
včera 00:11 | Bezpečnostní upozornění

Vývojáři linuxové distribuce Mageia na svém blogu upozorňují na narušení bezpečnosti Mageia Identity. Narušitel získal přístup k LDAP databázi a zveřejnil jména uživatelů, jejich emailové adresy a haše hesel. Hesla uživatelů byla resetována.

Ladislav Hagara | Komentářů: 3
20.2. 21:55 | Nová verze

Byla vydána verze 2.0.0 nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). Z novinek je nutno upozornit na nový zpětně nekompatibilní formát záznamu asciicast v2. S novým formátem si poradí nové verze asciinema-playeru a asciinema-serveru [Hacker News].

Ladislav Hagara | Komentářů: 0
20.2. 05:55 | Zajímavý projekt

Dle příspěvku na blogu zaměstnanců CZ.NIC byl spuštěn ostrý provoz služby Honeypot as a Service (HaaS). Zapojit se může kdokoli. Stačí se zaregistrovat a nainstalovat HaaS proxy, která začne příchozí komunikaci z portu 22 (běžně používaného pro SSH) přeposílat na server HaaS, kde honeypot Cowrie (GitHub) simuluje zařízení a zaznamenává provedené příkazy. Získat lze tak zajímavé informace o provedených útocích. K dispozici jsou globální statistiky.

Ladislav Hagara | Komentářů: 12
20.2. 04:44 | Komunita

Před týdnem společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux oznámila, že pro macOS a Linux vydají hru Rise of the Tomb Raider. Včera společnost oznámila (YouTube), že pro macOS a Linux vydají také hru Total War Saga: Thrones of Britannia. Verze pro Windows by měla vyjít 19. dubna. Verze pro macOS a Linux krátce na to.

Ladislav Hagara | Komentářů: 0
19.2. 21:33 | Nová verze

Byla vydána nová major verze 7.10 svobodného systému pro řízení vztahů se zákazníky (CRM) s názvem SuiteCRM (Wikipedie). Jedná se o fork systému SugarCRM (Wikipedie). Zdrojové kódy SuiteCRM jsou k dispozici na GitHubu pod licencí AGPL.

Ladislav Hagara | Komentářů: 0
19.2. 16:44 | Nová verze

Byla vydána nová verze 0.30 display serveru Mir (Wikipedie) a nová verze 2.31 nástrojů snapd pro práci s balíčky ve formátu snap (Wikipedie). Z novinek Miru vývojáři zdůrazňují vylepšenou podporu Waylandu nebo možnost sestavení a spouštění Miru ve Fedoře. Nová verze snapd umí Mir spouštět jako snap.

Ladislav Hagara | Komentářů: 0
19.2. 14:00 | Komunita

Na Indiegogo běží kampaň na podporu Sway Hackathonu, tj. pracovního setkání klíčových vývojářů s i3 kompatibilního dlaždicového (tiling) správce oken pro Wayland Sway. Cílová částka 1 500 dolarů byla vybrána již za 9 hodin. Nový cíl 2 000 dolarů byl dosažen záhy. Vývojáři přemýšlejí nad dalšími cíli.

Ladislav Hagara | Komentářů: 1
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (28%)
 (61%)
 (3%)
 (3%)
 (0%)
 (1%)
 (1%)
Celkem 426 hlasů
 Komentářů: 35, poslední včera 19:51
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: getch() nefungujE v linuxe

    Libco avatar 18.1.2012 21:24 Libco | skóre: 8 | Banska Bystrica - sk
    getch() nefungujE v linuxe
    Přečteno: 996×
    Prečo? keď vo win funguje. Je to dobrá a niekedy potrebná funkcia.
    lama

    Řešení dotazu:


    Odpovědi

    18.1.2012 21:32 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ako si došiel k tomu, že nefunguje?
    18.1.2012 21:54 l4m4
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Funkce getch() z unixové knihovny (n)curses? Tak povídej...
    Libco avatar 18.1.2012 22:05 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Funkce getch() z unixové knihovny (n)curses? Tak povídej...
    Ja s céčkom len začínam, na nete som našiel getch() a putgh(), vo win fungovali s knihovňou stdio.h, nevedel som, že mám použiť inú knihovňu pre linux, na nete som našiel, že to nefunguje, preto som sa spýtal skúsenejších. Teda knihovňa sa volá: curses.h?
    lama
    Řešení 1× (rastos)
    18.1.2012 22:16 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ach pane ... ja to skrátim, aby sme sa netrápili: tvoj program musí na začiatku urobiť initscr() a na konci endwin(), curses.h je hlavičkový súbor (header), "knihovňa" sa po slovensky povie "knižnica" a tá knižnica sa volá ncurses. Microsofťácke getch() je už 6 rokov depreciated a používať máš _getch(),ktoré je deklarované v conio.h a nie stdio.h a tá druhá funkcia sa volá _putch() a nie putgh().
    Libco avatar 18.1.2012 22:29 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    A čo keby si pomohol začínajúcim, ako som ja, v ich rozvoji na fóre, ktoré som založil, aby som sa naučil céčko? http://skolka-jazyka-c.freespace.sk/
    lama
    18.1.2012 23:26 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ak sa chceš naučiť céčko, nezakladaj fóra, ale prečítaj jednu alebo dve knižky, sadni k počítaču, píš kód a skúšaj.

    Nenaučíš sa nič, ak tomu nebudeš venovať viac času, ako mne zaberie napísanie odpovede.
    Libco avatar 18.1.2012 23:02 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    gcc L.7_5.c L.7_5.c:10:19: fatal error: conio.h: Adresár alebo súbor neexistuje compilation terminated.
    lama
    18.1.2012 23:37 rastos | skóre: 60 | blog: rastos
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Predpokladám, že L.7_5.c je meno súboru. A v ňom si urobil #include <conio.h> a pokúsiš sa ho kompilovať pomocou gcc. A ja som povedal, že conio.h používa Microsoftove C. gcc nemá conio.h. Ak chceš použiť funkciu getch() tak sa pozrieš do jej dokumentácie a zistíš, že musíš urobiť includovať ncurses.h a nie conio.h
    19.1.2012 13:15 Roman Došek | skóre: 17 | blog: flare
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Určitě by bylo lepší na naučení používat funkce, které jsou platformně nezávislé, když už chceš dělat programy které budou stejné na Linuxu i Windows.

    Potřebné přenositelné funkce, které zvládnou to samé najdeš i v stdio.h, viz C++ Reference
    Libco avatar 19.1.2012 17:24 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ďakujem obom, všetko je to veľmi zaujímavé.
    lama
    Libco avatar 20.1.2012 20:20 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Nakoniec som našiel na nete konkrétny kód, ten som použil a ide to v pohode.

    Tu je link.
    lama
    20.1.2012 23:03 Roman Došek | skóre: 17 | blog: flare
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Možná kdybys napsal na co konkrétně tu funkci používáš, dalo by se ti líp poradit. Jsem přesvědčen o tom, že to co děláš lze napsat i pomoci standartních C knihoven a není třeba includovat něco podobného. :)
    martin-ux avatar 21.1.2012 16:05 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ako ti bolo povedane, conio.h je zalezitost DOS/Windows.

    Jedna z moznosti je pouzit curses .. len ono to ma svoj dovod, preco sa to vola "curses". A nesuvisi to s cursorom ;)

    Ale k veci. Ak sa ucis C, predpokladam, ze getch* fcie pouzivas na typicke ukazkove priklady. Raz pri jednom programe som potreboval fciu, co by sa spravala presne ako getche .. na public forach som nasiel vtedy toto (davam ti aj cely program s trivialnou ukazou):
    #include <stdio.h>
    #include <termios.h>            /* mygetch() */
    #include <unistd.h>             /* mygetch() */
    
    int mygetch();
    
    int main() {
            fprintf(stdout, "press something .. \n");
    
            char c = (char)mygetch();
            fprintf(stdout, "you've pressed: %c\n", c);
    
            return 0;
    }
    
    /* borrowed from public forums */
    int mygetch()
    {
            struct termios oldt,newt;
            int ch;
    
            tcgetattr( STDIN_FILENO, &oldt );
            newt = oldt;
            newt.c_lflag &= ~( ICANON | ECHO );
    
            tcsetattr( STDIN_FILENO, TCSANOW, &newt );
            ch = getchar();
            tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
    
            return ch;
    }
    
    mygetch() sa tu sprava presne ako getche() v DOSe. Manualova stranka k tcgetattr by ti k tomu povedala viac (riadok 24 nastavuje co sa bude robit po stisku, ak to poviem tak zjednodusene).
    ..when you do things right, people won't be sure you've done anything at all..
    21.1.2012 17:57 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    2× je lepsí než 0× to je pravda…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    martin-ux avatar 21.1.2012 18:04 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    narazas na mygetch() -> getchar() ? :)
    ..when you do things right, people won't be sure you've done anything at all..
    21.1.2012 19:38 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Narážím na příspěvek.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    martin-ux avatar 21.1.2012 20:04 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    oops .. ten link som nepozeral .. nj
    ..when you do things right, people won't be sure you've done anything at all..
    21.1.2012 20:43 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    V tomto případě je to opravdu dobře, že to tu je podruhé, minimálně ze dvou důvodů :)
    21.1.2012 22:05 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ale to tedy i má reakce měla smysl :)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.2.2012 12:49 libco
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Vyriešil som to zbavením sa znaku Enter
    c = getchar();
    while (getchar() != Enter)
    ;


    Znak Enter sa píše inakšie, ale tu mi ho nedovolí napísať.
    Josef Kufner avatar 17.2.2012 23:57 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Enter se píše takto: '\n'
    Hello world ! Segmentation fault (core dumped)
    Libco avatar 23.1.2012 18:28 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ďakujem za poznatky.
    Ideme v céčku od základov a využívame len to, čo bolo v lekciách.
    Programy testujem na win aj na linuxe podľa toho
    v akom prestredí ich vytvorili ich tvorcovia - začiatočníci.
    Učíme sa len z dostupnej literatúry bez kontroly
    skúseného programátora.
    Ale to je naša vec, pomaly to ide a my sa naučíme!

    Ešte raz, ĎAKUJEM. :)
    lama
    Luboš Doležel (Doli) avatar 23.1.2012 21:04 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ufff, nechce tazatel vlastně použít spíš getchar()? Jak to tak pozoruji, tak to je asi ta funkce, o kterou by se měl zajímat.
    sad avatar 24.1.2012 00:11 sad | skóre: 7 | blog: sad
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Asi by bylo lepší použít getchar(), který je ve standardní knihovně, a od getch() se liší jen tím, že čeká na enter jako na potvrzení vstupu. Když třeba napíšeš znak x a zmáčkneš enter, getchar() si vezme to x, takže ten enter zůstane načtený v paměti a když náhodou přijde druhý getchar(), vezme si ten enter, který zůstal viset v paměti a sedící u počítače nedostane šanci vložit jakýkoliv vstup. Můžeme tomu zabránit prázdným cyklem následovaném po getchar():

    while (getchar() != '\n')
      ;


    A jestli chceš používat knihovnu ncurses, i když pro začátečníky je asi zbytečná, tak ji také musíš doinstalovat do linuxové distribuce, balíček by se měl jmenovat libncurses5-dev, nebo tak podobně, a měl bys ho najít v oficiálních repositářích své distribuce. A potom knihovnu musíš vložit do zdrojového kodu #include <ncurses.h>
    martin-ux avatar 24.1.2012 10:15 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    no ved vo svojej podstate to prave robi ta mygetch fcia. len osetrenie vstupu je elegantnejsie. ber to s humorom, ale ked vidim taketo slucky, tak ma vzdy napadne citat z pelisok: "komu tim prospejete!" :)

    ked sa zacina ucit, tak nepotrebuje (zatial) riesit ako to funguje - zavola si mygetch() a sustredi sa na problem, ktory riesi v ulohe.
    ..when you do things right, people won't be sure you've done anything at all..
    24.1.2012 18:50 Roman Došek | skóre: 17 | blog: flare
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Když se začíná učit, tak by se naopak měl vyhnout kopírování kódu kterému nerozumí a používat funkce ze standartních knihoven, které fungují všude. Kopírování takového kódu akorát vede k chybám později...
    martin-ux avatar 24.1.2012 23:18 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    no, to suhlas .. ale ak ide podla literatury, kde sa napriklad vyuziva getch (teda orig fcia z conio.h) tak musi spravit nejaky kompromis.

    na niektore priklady, reps. ukazky problemu sa proste ten getch() hodi, ci uz len na nejaky vyber z menu alebo nejake very easy eye candy ukazky (co niekedy celkom tiez potesi, ked sa clovek zacina ucit a nejedna sa o serioznu vec)
    ..when you do things right, people won't be sure you've done anything at all..
    25.1.2012 00:32 l4m4
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Nelze-li programu vstup prostě poslat na stdin, patří autora oběsit na nejbližsím platanu. Pak aby člověk používal expect(1) a podobné špinavosti...

    Trochu jiná věc jsou čistě interaktivní programy s tui jako mc, ovšem ty se nepíší pomocí getch().

    martin-ux avatar 25.1.2012 09:59 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Ono zbytocne si budes robit nadeje. Ak budem citovat autora clanku:
    Ideme v céčku od základov a využívame len to, čo bolo v lekciách. Programy testujem na win aj na linuxe podľa toho v akom prestredí ich vytvorili ich tvorcovia - začiatočníci.
    Co by si cakal od zaciatocnika? Tak isto nebol uvedeny vek zacinajuceho programatora.

    Ja s tebou inak suhlasim, som za dodrziavanie best practices, nech sa ich ucia pokial mozno co najskor. Ale su to zaciatocnici - a vtedy to treba brat trosku s rezervou.

    Inak sa mi tento priklad hodi analogicky na to, ako sa vela krat hovorilo, ze z akych dovodov niekto pise shellove skripty v bash-y, ked ani len v tom scripte nevyuziva ziaden bashism. A napriek tomu sa mrte skriptov v komunitach zacina tym odpornym: /bin/bash. So much for compatibility :/ .. ale to som uz mimo temu..

    ..when you do things right, people won't be sure you've done anything at all..
    25.1.2012 10:14 l4m4
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    z akych dovodov niekto pise shellove skripty v bash-y, ked ani len v tom scripte nevyuziva ziaden bashism.
    Z jednoduchých: udělal to někdy naopak (tedy bashový skript s intepretem /bin/sh) a dostal vynadáno -- oprávněně.

    No a /bin/bash je prostě autorova volba interpretu. Skript nemusí obsahovat shodou okolností žádné bashismy, když má ještě pět řádků, ale čeká se, že je bude obsahovat, až se rozroste na padesát -- skript v bashi je to přitom celou dobu.
    martin-ux avatar 25.1.2012 13:06 martin-ux | skóre: 18 | Bratislava
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Z jednoduchých: udělal to někdy naopak (tedy bashový skript s intepretem /bin/sh) a dostal vynadáno -- oprávněně.
    no toho cloveka, co mu vynadal treba pouzit uz tebou spomenute riesenie - obesit na platane.
    ..when you do things right, people won't be sure you've done anything at all..
    Libco avatar 28.1.2012 20:40 Libco | skóre: 8 | Banska Bystrica - sk
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Teda páni. :-)
    Prekvapila a potešila ma vaša aktivita. Pre zaujímavosť, mám 53 rokov a nikdy som neštudoval
    a nezaoberal sa programovaním. Vždy som to chcel vedieť, len okolnosti ....
    Teraz mám trošku času sem tam, tak sa bavím.
    lama
    18.2.2012 01:22 l4m4
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Skript s interpretem /bin/sh očekávající specifické chování bashe ale je jednoznačná chyba. Zde není co řešit, skript prostě s uvedeným interpretem nefunguje.

    Diskutabilní je pouze opačná situace, tedy sh-kompatibilní skript s interpretem /bin/bash. To, jak vysvětluji, naopak obecně není chyba, pouze to bývá nepraktické/neefektivní/...
    17.2.2012 12:50 libco
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Toto je presne to čo som potreboval.
    17.2.2012 12:52 libco
    Rozbalit Rozbalit vše Re: getch() nefungujE v linuxe
    Myslím tým príspevok od sad.

    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.