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 12:44 | IT novinky

    Nizozemská vláda ve snaze šetřit a zvyšovat efektivitu s využitím umělé inteligence (AI) hodlá zrušit asi 25.000 pracovních míst ve státní správě. Cílem je postupně dosáhnout ročních úspor až 3,5 miliardy eur (85,2 miliardy Kč). Na konci loňského roku ve státní správě pracovalo rekordních 160.000 lidí. „Nemůžeme pokračovat v tom, co jsme dělali dosud,“ uvedl státní tajemník pro efektivní fungování vlády Eric van den Burg. „Proto

    … více »
    Ladislav Hagara | Komentářů: 9
    včera 12:00 | IT novinky

    Příspěvek na blogu PRUSA 3D představuje fotoaparát CAIM1 (Counter Artificial Intelligence Machine 1). Uměle vytvořený obsah je každým dnem těžší rozeznat od skutečných záběrů či fotografií, což podrývá důvěryhodnost žurnalistiky, archivních materiálů i každodenní tvorby obsahu. Fotoaparát CAIM1 byl vyvinut právě k tomu, aby ověřoval původ fotografií a videí přímo během jejich pořizování. Uvnitř fotoaparátu se nachází hardwarová Web3 peněženka se zabezpečovacím čipem Tropic Square TROPIC01.

    Ladislav Hagara | Komentářů: 3
    včera 00:11 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 4.1 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 0
    31.10. 23:33 | Zajímavý článek

    Při běžné migraci virtuálního stroje mezi hypervizory se jeho MAC adresa přesune na jiný leaf switch. EVPN tuto změnu distribuuje pomocí BGP Type-2 route a MAC mobility sequence number. Problém nastává, pokud útočník podvrhne zdrojovou MAC adresu jiného zařízení. Leaf může změnu interpretovat jako legitimní přesun MAC a rozšířit ji přes BGP do celé fabric. Výsledkem může být přesměrování provozu určeného původnímu zařízení. Autor článku rozebírá možnosti detekce pomocí sledování MAC moves, BGP route reflektorů a kontroly na přístupové vrstvě.

    vencour | Komentářů: 0
    31.10. 15:11 | Nová verze

    Vývojáři desktopového prostředí Enlightenment (Wikipedie) a souvisejících knihoven Enlightenment Foundation Libraries (EFL) vydali nové verze. Enlightenment byl vydán ve verzi 0.28.0 a Enlightenment Foundation Libraries ve verzi 1.29.

    Ladislav Hagara | Komentářů: 4
    31.10. 13:55 | Zajímavý článek

    Cloudflare zjistil, že některé odpovědi modelu GLM-5.3 obsahovaly části dat z předchozích požadavků jiných zákazníků. Příčinou byla kombinace chybné konfigurace a chyby v inference enginu SGLang. Model podporoval kontextové okno 1 048 576 tokenů, ale GPU KV cache pool měl kapacitu pouze 681 280 tokenů. Při překročení kapacity docházelo k nesprávnému zpracování odmítnutého požadavku. Decode část systému následně pracovala se starými

    … více »
    vencour | Komentářů: 2
    31.10. 13:00 | Zajímavý článek

    Vývojáři Knot Resolver vysvětlují, jak změnili rozhodování o tom, které DNS záznamy ponechat v cache a které odstranit. Článek obsahuje skutečná měření: devět hodin DNS provozu při 2 000 QPS, srovnání cache o velikosti 25 MB a 40 GB a také porovnání s BIND 9, kromě algoritmů obsahuje konkrétní doporučení pro konfiguraci a diagnostiku.

    vencour | Komentářů: 0
    30.10. 13:44 | IT novinky

    Největší kryptoměnová burza světa Binance se stala terčem útoku, při kterém podvodníci odcizili během několika minut kryptoměny v hodnotě přibližně 6,3 miliardy dolarů. Jedná se o největší kryptoměnovou krádež v historii, přibližně čtyřikrát větší než loňský útok na burzu Bybit. Binance se podařilo ve spolupráci s partnery zmrazit aspoň aktiva v hodnotě zhruba 3 miliard dolarů a slíbila, že veškeré ztráty pokryje z vlastních prostředků.

    Ladislav Hagara | Komentářů: 16
    30.10. 02:16 | Bezpečnostní upozornění

    Zranitelnost CVE-2026-98432 s CVSS 9.8 odhalila AI od společnosti Anthropic. Jedná se o kritickou chybu v implementaci MPTCP (multipath TCP). Debian vydal patche 16.10. a 22.10., ale např. Ubuntu je zatím bez opravy. Více informací na The Hacker News.

    Max | Komentářů: 20
    29.10. 23:22 | Zajímavý software

    Na Slovensku vznikla úplne nová rally hra, ktorá je zadarmo a funguje vo Windowse, Linuxe či na Macu. Greenie Rally má viac ako 50 tratí a vozidiel, šampionáty či turnaje. Má retro feeling a imituje automobilové hry z prelomu tisícročí. Vyskúšate prejsť všetky mapy na Škode 130RS?

    Stanislav Hoferek | Komentářů: 14
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2963 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: Jak na dva terminaly, aby si navzajem posilaly data a i je vypisovaly

    21.4.2005 17:00 VytliNoha | skóre: 1
    Jak na dva terminaly, aby si navzajem posilaly data a i je vypisovaly
    Přečteno: 524×

    Zdravim mohl byste mi nekdo poradit jak se da resit programek v cecku abych si pri spusteni navolil v prikazove radce jaky pseudo terminal se bude pouzivat ( ptsX ). Program se pak propoji na dalsi pseudo terminal a navzajem si posilaji data.

    Presne zadani zde:

    ........................................

    Napište program, teletype. Tento program otevře sériový port a vyšle na něj každý z klávesnice zapsaný znak a vypíše každý jednotlivý znak ze sériové linky přijatý. Pomocí sériového kabelu propojte COM1 a COM2 a spusťte 2 instance programu teletype. Který COM se bude používat specifikujte z příkazové řádky při spouštění programu.

    ________________

    Vim jak udelat abych se propojil na terminal a cetl z nej znaky ale nevim jak udelat aby jsme mohl navzajem mezi terminali prijimat i odesilat. Snad pomoci fce select? Prosim poradte, ( nechci to naprogramovat, jen nakopnout), zatim je to pro me spanelska vesnice. Dekuji

    Odpovědi

    wake avatar 21.4.2005 17:37 wake | skóre: 30 | blog: wake | Praha
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    jeden thread v nekonecne smycce cte konsoli a posila to na pts, druhy thread v nekonecne smycce cte pts a posila to na konsoli. jeste musite vyresit interferenci konsole a vystupu (echo on/off), ale to uz necham na vas...

    btw. pozdravujte sveho ucitele programovani ;-)
    Tento příspěvek má hlavičku i patičku!
    21.4.2005 17:49 VytliNoha | skóre: 1
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    A nebude to mezi sebou delat bordel? Vsak v konzoli budu psat text ktery to bude posilat na druhy terminal a pritom ta moje konzole bude i ten text vypisovat. Kurna leda to omezit ze vse pujde na stridacku, 1. posle prijme a muze odeslat druhy zatim ceka. To by slo osetrit semaforem nebo mutexem.

    Jdu spravnym smerem?
    21.4.2005 18:53 m0rph
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    he? staci normalni cekaci smycka smycka se selectem, ktera periodicky provadi (neblokujici) cteni stdinu a toho portu, pokud se na nich neco objevi, coz vam rekne ten select. jeste se musi pomoci setbuf vypnout bufferovani stdinu a stdoutu, aby se data zpracovavala a zobrazovala hned a ne az po odradkovani.

    kdo chce na takovou blbinu pouzivat thready, at se vrati do windows.
    21.4.2005 19:09 VytliNoha | skóre: 1
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    No pro zacatecnika velke sousto pochopit vas prispevek. Ale snad to prelouskam kazdopadne jsem rad za kazdou radu.
    wake avatar 21.4.2005 19:11 wake | skóre: 30 | blog: wake | Praha
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    a proc _periodicky_ a proc _neblokujici_ ?
    Tento příspěvek má hlavičku i patičku!
    Josef Kufner avatar 21.4.2005 19:20 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Oboji je zbytecne.

    Kdysi jsem delal program, ktery propojil svuj stdin a stdout se sitovym soketem. Byl to jeden nekonecny cyklus se selectem. Vsechna cteni/zapisy byly blokujici a timeout selectu byl nekonecny. Program v klidu spinkal a kdyz prisla data, tak je sebral a prehodil kam patri. Pak jsem to pouzil na sitove hrani piskvorek ;)
    Hello world ! Segmentation fault (core dumped)
    21.4.2005 19:23 VytliNoha | skóre: 1
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Nemohl bys mi konkretneji poradit jak na to, moc by mi to pomohlo.
    Josef Kufner avatar 21.4.2005 20:29 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Je to prakticky ucebnicove pouziti selectu. Dva vstupy - stdin a ten od druheho terminalu (treba socket) predane selectu a jinak nic.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 21.4.2005 20:31 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    kdybys to chtel videt nekde pouzite, tak koukni treba na wmpiki
    Hello world ! Segmentation fault (core dumped)
    21.4.2005 20:48 VytliNoha | skóre: 1
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Mohl bys ten tvuj ucebnicovy priklad napsat? Moc by mi pomohlo pochopit ten select. Dekuji!!
    21.4.2005 20:59 RWS
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    $ man 2 select

    dej tam navic 2 FD (stdin a ten serial) a nekonecnej cyklus a mas to
    EXAMPLE
           #include <stdio.h>
           #include <sys/time.h>
           #include <sys/types.h>
           #include <unistd.h>
    
           int
           main(void) {
               fd_set rfds;
               struct timeval tv;
               int retval;
    
               /* Watch stdin (fd 0) to see when it has input. */
               FD_ZERO(&rfds);
               FD_SET(0, &rfds);
               /* Wait up to five seconds. */
               tv.tv_sec = 5;
               tv.tv_usec = 0;
    
               retval = select(1, &rfds, NULL, NULL, &tv);
               /* Don't rely on the value of tv now! */
    
               if (retval == -1)
                perror("select()");
               else
               if (retval)
                   printf("Data is available now.\n");
                   /* FD_ISSET(0, &rfds) will be true. */
               else
                   printf("No data within five seconds.\n");
    
               return 0;
           }
    
    22.4.2005 08:09 VytliNoha | skóre: 1
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Tak jsem to udelal takto, pri spusteni predavam parametr nazev terminalu na ktery ma preposilat vstup z klavesnice a z toho terminalu i cist a vypisovat to na vystup, jenomze kdyz program spustim tak vypisuje data ktere pisi na termilu ktery jsem uvedl pri spusteni ale kdyz pisu v tomto terminalu tak to zase nezbrazuje v terminalu kde jsem program spustil. V zadani mame ze mame spustit dve instance, ale to nejde protoze kdyz spustim program tak ten blokuje ten terminal z k tereho vypisuje text a uz nemuzu spusti dalsi instanci programu. Soucasni muj zdrojak, prosim poradte.
    #define BUF_LEN 200
    struct termios set_attributes;
              
    int main(int argc, char *argv[]) {
    	char *ttyID;
    	char buffer[BUF_LEN];
    	int result;	
        fd_set terminal, klavesnice;
        struct timeval timeout; /* Struktura s časovým limitem */
    	size_t len;
    
    
    	ttyID = argv[1]; /* Nacteme ttyID pseudo terminalu */
    	int tty = open(ttyID, O_RDWR);
    	
    	// nastav nove parametry terminalu
        tcgetattr(tty, &set_attributes);
        set_attributes.c_lflag &= ~ICANON; // necekej na cely radek (noncanonical)
        //set_attributes.c_lflag &= ~ECHO;   // nezobrazuj ctene znaky
        set_attributes.c_cc[VMIN] = 1;                                        
        set_attributes.c_cc[VTIME] = 0;
        tcsetattr(tty, TCSAFLUSH, &set_attributes);
    	
    	while(1){
    		FD_ZERO(&terminal); /* Odstranime nahodna data z mnoziny */
    		FD_ZERO(&klavesnice); /* Odstranime nahodna data z mnoziny */
    		FD_SET(fileno(stdin), &klavesnice); /* Naplnime mnozinu stdin */
    		FD_SET(tty, &terminal); /* Naplnime mnozinu ttyckem */
    		// Nadefinovany casovy interval 4 sekundy a 5 milis..
    		timeout.tv_sec = 4;
    		timeout.tv_usec = 50000;
    		
    		// Zavolám select (V Linuxu musím mít nastavenou proměnnou FD_SETSIZE) --- tezko rict co je na tom pravdy
    		result = select(FD_SETSIZE, &klavesnice, &terminal, NULL, &timeout);
    		switch(result){
    			case -1:
    				perror("select"); /* Nastala chyba */
    				exit(1);
    			case 0:
    				printf("timeout \n"); /* Vypršel časový limit */
    				break;
    			default:
    					  /* Obsluha soketu. Zde je možné vytvořit nové vlákno nebo proces,
    						který obslouží událost na soketu. Server pak je vícevláknový.
    						*/
    					if (FD_ISSET(fileno(stdin), &klavesnice)) {
    						/* Data available on stdin */
    						char a;
    						read(fileno(stdin), &a, sizeof(a));
    						write(tty, &a, sizeof(a)); 
    					}			
    					if (FD_ISSET(tty, &terminal)) {
    						char c;
    						read(tty, &c, sizeof(c));/*:!*/
    						if(c == '\004') { // `C-d'
    							// program skonci az prijme Ctrl-D
    							break;
    						}
    						else {
    							putchar(c);
    							// vyprazdni vystupni buffer
    							// a zpusob tak zobrazeni znaku
    							// i v nekanonickem modu terminalu
    							fflush(stdout); 
    						}
    					}
    				break;
    		}
    		
    	}
    }
    
    wake avatar 23.4.2005 21:20 wake | skóre: 30 | blog: wake | Praha
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    snad:
    .
    .
    .
    switch(select(1, &rfds, NULL, NULL, &tv))
    {
    case -1:
        perror("select()");
        return -1;
        /* no break */
    case 0:
        printf("No data in 5 sec.\n");
        break;
    default:
        printf("DAATAAA!!!.\n");
        /* FD_ISSET(0, &rfds) will be true. */
        break;
    }
    return 0;
    .
    .
    .
    
    ;-)
    Tento příspěvek má hlavičku i patičku!
    21.4.2005 20:00 VytliNoha | skóre: 1
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Zatim k cemu jsem se dohrabal, program se spousti s parametrem z ktereho portu ma data tisknout na terminal
    
    hlavicky
    
    
    
    void *readFromTERMINAL( void *ptr )
    {
            char *terminal;
            terminal = (char *) ptr;
    		
    		int tty = open(terminal, O_RDONLY);/*:!*/
    		if(tty < 0) {
            	perror("ERROR open device /dev/ttyS1");
            	exit(EXIT_FAILURE);
        	}
    		
        	while(1) {
            	char c;
           	 	read(tty, &c, sizeof(c));
            	if(c == '\004') { // `C-d'
                	// program skonci az prijme Ctrl-D
                	close(tty);
    				break;
            	}
            	else {
                	putchar(c);
                	// vyprazdni vystupni buffer
                	// a zpusob tak zobrazeni znaku
                	// i v nekanonickem modu terminalu
                	fflush(stdout); 
            	}
        	}
        	close(tty);	
    		
    }
    
    
    int main(int argc, char *argv[])
    {
    	pthread_t thread1, thread2;
    	char *parametr;
    	parametr = argv[1];   
    	
    
        // vlakno cte z daneho portu a vypisuje na terminal
    	pthread_create( &thread1, NULL, readFromTERMINAL, parametr); 
        
        
    	pthread_join(thread1, NULL);
    	printf("\nKonec\n");
        return EXIT_SUCCESS;
    }
    
    Josef Kufner avatar 21.4.2005 20:30 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    pouzivat na tohle vlakna je zvrhlost
    Hello world ! Segmentation fault (core dumped)
    21.4.2005 17:40 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Nějak jsem to nepochopil, ale ty com porty si normálně otevřu jako soubory akorát že mu zadám zařízení /dev/ttySx tak podobně i s těmy terminály by to mělo jít ne ? (/dev/pts/x )
    Josef Kufner avatar 21.4.2005 19:21 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    terminal uz mas otevreny pri spusteni - stdin, stdout (a stderr).
    Hello world ! Segmentation fault (core dumped)
    21.4.2005 20:02 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    To ano ale to je ten můj aktuální ale když to chci poslat na jiný terminál ?
    Josef Kufner avatar 21.4.2005 20:21 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    screen to dela tak, ze si vytvori unixovy socket a k nemu se pak pripoji dalsi screen
    Hello world ! Segmentation fault (core dumped)
    wake avatar 22.4.2005 08:27 wake | skóre: 30 | blog: wake | Praha
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    presmerujes sipeckama pri volani ;)
    Tento příspěvek má hlavičku i patičku!
    22.4.2005 08:34 Pitrsonek
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    Mohl bys mi to ukazat nevim presne jak to myslis, v linuxu delam asi tak mesi a v cecku taky to jen proto ze musim .-) Jinak ten kod je napsany dobre, testoval si to? kdyztak moje ICQ: 114940710
    wake avatar 22.4.2005 10:23 wake | skóre: 30 | blog: wake | Praha
    Rozbalit Rozbalit vše Re: Jak na dva terminali aby si navzajem posilali data a aji je vypiso
    moje_skvela_utilita </dev/bagr/jahoda/konzole >/dev/bagr/jahoda/konzole
    Tento příspěvek má hlavičku i patičku!
    21.4.2005 22:34 SAM: | skóre: 23 | blog: marsark_linux
    Rozbalit Rozbalit vše Re: Jak na dva terminaly, aby si navzajem posilaly data a i je vypisov
    Hm, koukám to je zajímavý přístup k vypracování úlohy do školy. Jsem zvědav, jak ji budete odevzdávat svému cvičícímu :-)
    21.4.2005 23:03 VytliNoha | skóre: 1
    Rozbalit Rozbalit vše Re: Jak na dva terminaly, aby si navzajem posilaly data a i je vypisov
    Co se ti ( vam ) nezda na tom pristupu?

    Založit nové vlákno • Nahoru

    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.