Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi 2023.05. Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Linux Foundation Europe představila projekt RISE (RISC-V Software Ecosystem), jehož cílem je urychlit vývoj open source softwaru pro architekturu RISC-V.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu pro jednodeskové počítače na platformě ARM, byl vydán ve verzi 23.05. Přehled novinek v Changelogu.
Minulý týden proběhla openSUSE Conference 2023. Mimo jiné bylo oznámeno přejmenování systému MicroOS Desktop. MicroOS Desktop GNOME byl přejmenován na openSUSE Aeon a MicroOS Desktop Plasma na openSUSE Kalpa.
Thom Holwerda z OSnews si všímá, že vývoj operačního systému MINIX je prakticky mrtvý. Jeho hlavní autor, Andrew Tanenbaum, formálně odešel do důchodu v roce 2014 a příspěvky do kódu v následujících letech vůbec ustaly. Stav projektu shrnuje diskuze z roku 2020. Sice vyšlo najevo, že Intel používal MINIX v Management Engine, ale změny nezveřejňoval.
Google Chrome 114 byl prohlášen za stabilní. Nejnovější stabilní verze 114.0.5735.90 přináší řadu oprav a vylepšení (YouTube). Vypíchnut je CHIPS (Cookies Having Independent Partitioned State). Opraveno bylo 16 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Byly zveřejněny prezentace a videozáznamy přednášek a fotografie z česko-slovenského setkání poskytovatelů přístupu k internetu, provozovatelů telekomunikačních sítí, registrátorů domén a provozovatelů počítačových sítí a technických nadšenců CSNOG 2023 (Czech and Slovak Network Operators Group) konaného 16. a 17. května ve Zlínu.
Soutěž amatérských robotů Robotický den 2023 proběhne v neděli 4. června v Kongresovém centru Praha.
V Tchaj-peji probíhá počítačový veletrh COMPUTEX 2023. Firmy představují své novinky. Nvidia například superpočítač DGX GH200 AI.
Vyšla nová verze XMPP (Jabber) klienta Gajim. Nejvýznamnější novinkou je integrace OMEMO pluginu přímo do jádra aplikace, takže již není třeba plugin samostatně instalovat. Přehled dalších novinek je dostupný na oficiálních stránkách. Gajim je vytvořen v jazyce Python s využitím knihovny GTK a vedle Linuxu jej lze vyzkoušet i na platformách MacOS a Windows.
getch()
?
getch()
je např. v ncurses.
getc()
(viz. man 3 getc
)
switch (getch()){ case 'a' : vypis(); break; }tak ze v dose ked stlacim klaves a, tak sa mi tato funkcia vypis hned vyvola, bez toho aby som zadaval za 'a' este 'enter'
initscr(); nodelay(); getch();
switch (getch()){ case 'a' : vypis(); break; }
initscr();
cbreak();
switch(getch())
{
case 'a': printf("hallo");
break;
}
#include <ncurses.h> int main() { initscr(); cbreak (); noecho (); switch(getch()) { case 'a': printfw("hallo"); refresh(); break; } endwin(); return 0; }
/tmp/ccVbJu1B.o: In function `main': 1.c:(.text+0x573): undefined reference to `initscr' 1.c:(.text+0x578): undefined reference to `cbreak' 1.c:(.text+0x57d): undefined reference to `stdscr' 1.c:(.text+0x585): undefined reference to `wgetch' collect2: ld returned 1 exit status
#include <curses.h> /* stdio.h neni nutne je v curses.h */ #include <ctype.h> #define COLOR2 1 /* barvicka 1. */ #define COLOR1 2 /* barvicka 2. */ int main () { int c; char *s; initscr (); cbreak (); noecho (); /* vypnuti echa */ start_color (); /* chceme barvy */ keypad (stdscr, TRUE); /* chceme klavesy pod makry KEY_neco */ curs_set(0); /* at tam ta mrska neblika */ if (!has_colors ()) { /* umi terminal barvy ? */ endwin (); fputs ("Hmm.. tady barvy nejdou !", stderr); exit (1); } /* barva - popredi - pozadi */ init_pair (COLOR1, COLOR_RED, COLOR_BLUE); /* barvicka 1. */ init_pair (COLOR2, COLOR_YELLOW, COLOR_BLACK); /* a druha */ attron (COLOR_PAIR( COLOR1 )); /* pouzivat barvu 1. */ mvaddstr (2, 5, "Cervene na modrem"); attron (COLOR_PAIR( COLOR2 )); mvaddstr (3, 5, "Zlute na cernem"); attron (A_BOLD); /* od ted vse BOLD */ mvaddstr (4, 5, "Zlute na cernem a tucne"); attroff (COLOR_PAIR( COLOR2 )); /* vypne barvu */ mvhline(LINES-2, 0, ACS_HLINE, COLS); /* nakresli caru */ mvaddstr (LINES-1, COLS-15, "F10 - konec"); mvaddstr (10, 5, "Jmeno klavesy:"); while ( (c=getch()) != KEY_F(10)) { s = (char *) keyname(c); /* jmeno klavesy ? */ mvhline(10, 20, ' ', COLS); /* smaz */ if (s) mvprintw (10, 20, "'%s'", s); else mvprintw (10, 20, "'%c'", (isprint(c) ? c : '.')); } erase (); /* smaz nase vytvory */ refresh (); endwin (); /* konec curses */ exit (0); /* ....bye */ }
initscr(); atexit((void(*)(void))endwin); cbreak(); refresh(); switch(getch()) { case 'a': printw("hallo"); sleep(1); break; }... nakonec je potřeba zavolat endwin(), jinak ti to nenavrátí terminál do původního stavu. Na psaní a kreslení je potřeba pak používat funkce z knihovny ncurses (např. printw() místo printf()).
int main(void){ int *p_pole = NULL; initscr(); atexit((void(*)(void))endwin); cbreak(); refresh(); while (1){ printf("\tmenu\n1. obrazok\n2. vypis\n3. vypocitaj\n4. nacitaj hodnoty\n5. usporiadaj\n6. koniec"); printf("\n\nzadajte svoju volbu > "); switch (getch()){ case '1' : system("clear"); obrazok(); break; case '2' : system("clear"); vypis(); break; case '3' : system("clear"); vypocitaj(); break; case '4' : system("clear"); nacitaj_hodnoty(&p_pole); break; case '5' : system("clear"); usporiadaj(p_pole); break; case '6' : return 0; } //system("clear"); } endwin(); }a po spusteni programu je cista obrazovka
#include <stdio.h> #include <termios.h> int main (void) { struct termios term; tcgetattr(0, &term); term.c_lflag &= ~ICANON; tcsetattr(0, TCSANOW, &term); setbuf(stdin, NULL); printf("Press any key to continue...\n"); getc(stdin); return 0; }
// Přečti nastavení terminálu. struct termios terminal_settings, original_terminal_settings; if (tcgetattr(input_fd, &terminal_settings) != 0) { perror("could not read terminal settings"); return false; } // Zapamatuj si je, aby je šlo obnovit na konci programu. original_terminal_settings = new struct termios; memcpy( original_terminal_settings, &terminal_settings, sizeof(struct termios) ); // Nová nastavení terminálu. terminal_settings.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); terminal_settings.c_oflag &= ~OPOST; terminal_settings.c_oflag |= ONLCR; // Překlad LF -> CRLF. terminal_settings.c_lflag &= ~ECHO; // Nevypisovat stisknuté klávesy. terminal_settings.c_lflag &= ~ECHONL; // Nevypisovat klávesu Enter. terminal_settings.c_lflag &= ~ICANON; // Vypnout kanonický režim. terminal_settings.c_lflag &= ~IEXTEN; // Vypnout rozšířené zpracování znaků. terminal_settings.c_cflag &= ~PARENB; // Žádná parita. terminal_settings.c_cflag &= ~CSIZE; terminal_settings.c_cflag |= CS8; // Osmibitové znaky. // Pošli změněná nastavení do terminálu. if (tcsetattr(input_fd, TCSADRAIN, &terminal_settings) != 0) { perror("could not change terminal settings"); return false; }Ale pokud budeš chtít kreslit menu, tak musíš ještě řídit pohyb kurzoru, barvy, atd., to znamená posílat správné řídící sekvence (jejich seznam najdeš například zde), a to bude taky slušné maso
Tiskni
Sdílej: