Zítra 23. září proběhne Maker Faire Mladá Boleslav, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byla vydána beta verze Ubuntu 23.10 s kódovým názvem Mantic Minotaur. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 23.10 mělo vyjít 12. října 2023.
Josef Průša informuje o nových verzích firmwarů pro tiskárny Original Prusa, 5.0.0 pro MK4 a MK3.9 a 5.1.0-alpha1 pro MINI, díky kterým jsou tiskárny mnohem rychlejší.
Mastodon (Wikipedie), svobodná federalizovaná sociální síť, byl vydán ve verzi 4.2. Z novinek je vypíchnuto vylepšené vyhledávání.
Ben Hawkes publikoval pod názvem The WebP 0day analýzu bezpečnostní chyby CVE-2023-4863 v knihovně WebP / libwebp s řadou zajímavých odkazů. Pravděpodobně se jedná o stejnou chybu jako BLASTPASS (CVE-2023-41064 a CVE-2023-41061) v macOS, iOS, iPadOS a watchOS. Zpracování (zobrazení) speciálně připraveného obrázku nebo přílohy vedlo ke spuštění útočníkem připraveného kódu.
Myš je pro kočku: Prohlížeče je dalším dílem ze série článků Myš je pro kočku, kde Edvard Rejthar ukazuje, jak lze počítač ovládat bez myši. Používáte ve webových prohlížečích zkratky Ctrl+(Shift)+Tab, Ctrl+(Shift)+PgDn/PgUp, F6, (Shift)+Alt+Enter nebo F7?
Vývojáři mobilní Datovky prosí o pomoc s testováním beta verze mobilní Datovky s novým grafickým rozhraním, podporou pro tmavý režim a podporou pro VoDZ. Aplikace je zatím dostupná pouze pro zařízení Android a je umístěna v samostatném instalačním kanále Datovka Beta. Tento kanál slouží pro testovaní nové funkcionality a grafického uživatelského rozhraní. Datovka Beta se instaluje jako samostatná aplikace s vlastními daty, která
… více »Harlequin byl vydán ve verzi 1.0.0. Jedná se o TUI (Text User Interface) IDE (Integrated Development Environment) k systému pro správu SQL OLAP databází DuckDB.
Po roce a půl od představení DALL·E 2 představila společnost OpenAI novou verzi DALL·E 3 svého AI systému pro generování "realisticky vypadajících obrázků nebo uměleckých děl" na základě popisu v přirozeném jazyce, viz příklad "kosmonaut na koni fotorealisticky". Jednou z novinek je integrace s ChatGPT.
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 133 (pdf) a HackSpace 70 (pdf).
ls -l >data.txt sh p2.exe -obsah souboru p2.exe main() { char radek[100]; char pismeno; float soucet,nasobek; int i; FILE *fd; FILE *fw; if((fd=fopen("data.txt","r"))==NULL) return; if((fw=fopen("SOUHRN.txt","w"))==NULL) return; soucet=0; printf("Zadejte pismeno, na ktere maji zacinat soubory:\n"); scanf("%c", &pismeno); while(!feof(fd)) /* vypis souboru */ { fgets (radek,100,fd); if(radek[56] == pismeno){ printf("%s\n",radek); fprintf(fw,"%s", radek); i=42; nasobek=1; while ((i-- > 30) && (radek[i] != ' ')){ soucet+=(radek[i]-48)*nasobek; nasobek*=10; } } } fclose(fd); fclose(fw); getchar(); system("pause"); }
<pre>
a </pre>
tagy. #include<stdio.h>
sh p2.exe
ti nebude fungovat. Jednak je v unixech koncovka exe zbytečná a druhak se ten soubor spustí ./p2
(./p2.exe
, když už to musí být).$ gcc -c p2.c -o p2.o $ gcc p2.o -o p2.exe $ ls -l >data.txt $ cat data total 16 -rw-r--r-- 1 misak users 0 Jan 3 22:28 SOUHRN.txt -rw-r--r-- 1 misak users 0 Jan 3 22:28 data.txt -rw-r--r-- 1 misak users 744 Jan 3 22:20 p2.c -rwxr-xr-x 1 misak users 7590 Jan 3 22:20 p2.exe -rw-r--r-- 1 misak users 1680 Jan 3 22:20 p2.o $ ./p2.exe Zadejte pismeno, na ktere maji zacinat soubory: p $ cat SOUHRN.txt $Tady jsou změny, které jsem musel udělat:
$ diff p2.c.original p2.c 0a1 > #include<stdio.h> 22c23 < if (radek[56] == pismeno) --- > if (radek[44] == pismeno) 39c40 < system ("pause"); --- > //system ("pause");Pokud ti nejede žádný unix, co takhle zkusit cygwin? Nebo vmware player s nějakým nainstalovaným unixem?
ls -l
začínal na 45. sloupci a ne 57., ale teď se dívám, že na CentOS je to taky 56, takže ten řádek raději neměň, pokud ti to funguje ls -l
'. K procházení adresáře slouží opendir()
, readdir()
a closedir()
, případně, nechce-li se tazatel zabývat přenositelností, lze uvažovat o použití scandir()
.
ls -l
. Sice je to přitažené za vlasy, ale některá zadání taková bývají.
radek[56]
, aniž by se ověřilo, že je řádek aspoň tak dlouhý, což zrovna hned první nebude. Sice je to ve staticky alokovaném bufferu, takže nehrozí pád programu nebo zneužití, ale to, zda se bude první řádek kopírovat nebo ne, je de facto dáno náhodou. Také je podivné, že se celou dobu něco sčítá do proměnné soucet
(proč je vlastně typu float
?), ale hodnota se nikde nepoužije. Rozumnější verze programu by mohla vypadat např. takto:
#include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <sys/stat.h> #include <unistd.h> #include <string.h> int main(int argc, char* argv[]) { DIR* dir; struct dirent* de; struct stat info; unsigned long long size; size_t prefixlen; const char* pgmname; const char* p; int R; pgmname = argv[0]; for (p=argv[0]; *p; p++) if (*p == '/') pgmname = p+1; if (argc < 2) { fprintf(stderr, "usage: %s directory [prefix]\n", pgmname); return 1; } if (argc == 3) prefixlen = strlen(argv[2]); else prefixlen = 0; dir = opendir(argv[1]); if (!dir) { perror(pgmname); return 2; } R = chdir(argv[1]); if (R < 0) { perror(pgmname); return 3; } size = 0; while ((de = readdir(dir))) if (prefixlen==0 || !strncmp(de->d_name, argv[2], prefixlen)) { stat(de->d_name, &info); if (S_ISREG(info.st_mode)) { size += info.st_size; puts(de->d_name); } } closedir(dir); printf("Total size: %llu\n", size); return 0; }
ls
, nastavení locale a přesném vyvážení mnoha dalších okolnostífloat
(které nakonec stejně nepoužije)
Tiskni
Sdílej: