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 02:22 | Komunita Ladislav Hagara | Komentářů: 0
    včera 23:22 | Komunita

    Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.

    Ladislav Hagara | Komentářů: 3
    včera 22:33 | Nová verze

    Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | Zajímavý článek

    Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.

    |🇵🇸 | Komentářů: 1
    včera 11:22 | IT novinky

    Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a

    … více »
    Ladislav Hagara | Komentářů: 8
    25.3. 19:11 | Komunita

    Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.

    Ladislav Hagara | Komentářů: 5
    25.3. 16:11 | Nová verze

    Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    25.3. 14:11 | Nová verze

    FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 4
    25.3. 13:11 | IT novinky

    Společnost OpenAI oznámila [𝕏], že ukončí aplikaci Sora pro generování krátkých videí pomocí umělé inteligence. Podrobné informace a harmonogram pro aplikaci a API budou brzy zveřejněny.

    Ladislav Hagara | Komentářů: 10
    25.3. 12:22 | IT novinky

    Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v

    … více »
    Ladislav Hagara | Komentářů: 32
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1160 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Dotaz: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C

    13.4.2009 14:38 merlin111 | skóre: 15
    zjistění aktuálního počtu písmen na řádce a řádek terminálu v C
    Přečteno: 253×
    Zdravím,

    Píšu jednoduché programy typu "ahoj světe" v ANSI C a chtěl bych vědět jestli existuje něco na zjištění aktálních rozměrů terminálu, tj, chci aby písmeno 'A' bylo přesně uprostřed obrazovky. Pevně nadefinované rozměry nejsou to pravé.

    Potřebuju napovědět v kterém hlavičkovém souboru to hledat.

    Díky.

    Každá ulice je slepá jen do té doby, než si opatříš buldozer.

    Odpovědi

    13.4.2009 20:51 12345 | skóre: 41 | blog:
    Rozbalit Rozbalit vše Re: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C
    Proměnná shellu $COLUMNS obvykle obsahuje počet sloupců. Stačí ji tedy přečíst pomocí getenv. Nevím ale, nakolik je to přenosné.
    13.4.2009 20:58 12345 | skóre: 41 | blog:
    Rozbalit Rozbalit vše Re: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C
    Tak jsem zalistoval Beginning Linux Programming a našel jsem lepší řešení:
    #include <stdio.h>
    #include <term.h>
    #include <ncurses.h>
    
    int main() {
    	int rows, cols;
    
    	setupterm(NULL, fileno(stdout), (int*)0);
    	rows = tigetnum("lines");
    	cols = tigetnum("cols");
    	printf("%dx%d\n", cols, rows);
    	return 0;
    }
    
    Slinkovat s ncurses (-lncurses), v případě potřeby přidat include cestu (třeba -I/usr/include/ncurses).
    b42 avatar 13.4.2009 21:01 b42 | skóre: 12 | Ostrava/Brno
    Rozbalit Rozbalit vše Re: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C

    Osobně bych asi použil to, co je popsáno v man tty_ioctl. Dále by se daly využít ncurses, nicméně to je v tomhle případě asi overkill. A pak je tu ještě ta škaredá možnost se čtením proměnných prostředí $LINES a $COLUMNS :)

    13.4.2009 21:05 l4m4
    Rozbalit Rozbalit vše Re: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C
    Dlouho jsem už neviděl, že by ty proměnné byly exportované, alespoň na Linuxu. Takže jsou použitelné ve skriptech v shellu, ale v C programech je ta možnost spíš teoretická...
    b42 avatar 13.4.2009 23:05 b42 | skóre: 12 | Ostrava/Brno
    Rozbalit Rozbalit vše Re: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C

    Jo, je to blbost ... sorry.

    13.4.2009 21:02 l4m4
    Rozbalit Rozbalit vše Re: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C
    #include <stdio.h>
    #include <curses.h>
    
    int
    main(void)
    {
        setupterm(NULL, 1, NULL);
        printf("%d %d\n", tigetnum("cols"), tigetnum("lines"));
        return 0;
    }
    
    Je třeba linkovat s -lcurses.

    Jako další level se můžeš podívat na signál SIGWINCH, případně na celou knihovnu ncurses.
    14.4.2009 00:28 merlin111 | skóre: 15
    Rozbalit Rozbalit vše Re: zjistění aktuálního počtu písmen na řádce a řádek terminálu v C
    Díky, tohle je ono. Tady je funční (pokud nejsou dlouhé řádky) výsledek.
    void vypis(FILE *fr) /* vypis souboru - fr musi být otevřen pro čtení v text */
    {
            char c;
            int p_radek = 1;
                    
            while (c = getc(fr), c !=EOF){
                    putchar(c);
                    if (c == '\n')
                            ++p_radek;
                    if (p_radek == radek) {
                            printf("%*s %ls", sloupcu / 2 + 2, "MORE");
                            p_radek = 1;
                            while (getchar() == '\n')
                                    ;
                            putchar(c);
                    }
            }
    }
    
    void init(void)
    {
            if (setupterm(NULL, 1, NULL) != ERR) {
                    sloupcu = COLS;
                    radek = LINES;
            }
    }
    
    Každá ulice je slepá jen do té doby, než si opatříš buldozer.

    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.