Byla představena oficiální rozšiřující deska Raspberry Pi M.2 HAT+ pro připojování M.2 periferii jako jsou NVMe disky a AI akcelerátory k Raspberry Pi 5. Cena je 12 dolarů.
V Praze o víkendu proběhla bastlířská událost roku - výstava Maker Fair v Praze. I strahovští bastlíři nelenili a bastly ostatních prozkoumali. Přijďte si proto i vy na Virtuální Bastlírnu popovídat, co Vás nejvíce zaujalo a jaké projekty jste si přinesli! Samozřejmě, nejen českou bastlířskou scénou je člověk živ - takže co se stalo ve světě a o čem mohou strahováci něco říct? Smutnou zprávou může být to, že provozovatel Sigfoxu jde do
… více »Kam asi vede IllllIllIIl.llIlI.lI? Zkracovač URL llIlI.lI.
Společnost OpenAI představila svůj nejnovější AI model GPT-4o (o jako omni, tj. vše). Nově také "vidí" a "slyší". Videoukázky na 𝕏 nebo YouTube.
Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.
Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU
… více »GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.
Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.
Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.
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: