Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 145. Aktuální verze Firefoxu je 148. Od září přejde Chrome na dvoutýdenní cyklus vydávání. V kterém týdnu bude mít Chrome větší číslo verze než Firefox? 😀
Apple představil nové čipy M5 Pro a M5 Max, MacBook Pro s čipy M5 Pro a M5 Max, MacBook Air s čipem M5 a Studio Display a nový Studio Display XDR.
Bylo spuštěno hlasování o přednáškách a workshopech pro letošní Installfest, jenž proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13.
Byla vydána (Mastodon, 𝕏) třetí RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Apple představil iPhone 17e a iPad Air s čipem M4.
Byla vydána verze 1.0 editoru kódů Gram. Jedná se o fork editoru Zed bez telemetrie a umělé inteligence.
Byla oznámena spolupráce GrapheneOS s Motorolou. Podrobnosti v tiskové zprávě. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.2.1. Přehled novinek v Changelogu.
Volí se dvě místa v Radě openSUSE. Seznamte se se čtyřmi kandidáty. Členové projektu openSUSE mohou hlasovat od 1. do 8. března. Výsledky budou oznámeny 9. března.
Společnost OpenAI uzavřela dohodu s americkým ministerstvem obrany o poskytování technologií umělé inteligence (AI) pro utajované sítě americké armády. Firma to oznámila několik hodin poté, co prezident Donald Trump nařídil vládě, aby přestala využívat služby společnosti Anthropic.
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
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;
}
#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;
}
}
}
.
.
.
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;
.
.
.
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;
}
moje_skvela_utilita </dev/bagr/jahoda/konzole >/dev/bagr/jahoda/konzole
Tiskni
Sdílej: