Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 26.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.
NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.
Předobjednat si lze nový jednodeskový počítač Arduino VENTUNO Q s předinstalovaným Ubuntu. S 16 GB LPDDR5 a 64 GB eMMC. Pro lokální LLM, agentní AI, počítačové vidění, robotiku…
Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě. Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom
CERN dlouhodobě používal vlastní sestavení RHEL, ze kterého přešel na CentOS Stream. Federico Vaga a Nikos Tsipinakis ale nyní v přednášce na MiniDebConf Winterthur 2026 popisují plán probíhajícího přechodu na Debian pro řízení akcelerátorů. Důvodem k opuštění CentOS Stream jsou zachování zpětné kompatibility se starším hardwarem, kterou Red Hat narušuje, když tlačí sestavení balíčků pro novější verze architektury (x86-64), a nedostatečné nástroje pro sestavování vlastních balíčků a repozitářů.
UZDoom (Wikipedie), tj. fork GZDoom, byl vydán ve verzi 5.0.0. Videopředstavení na YouTube. Podrobný přehled novinek v Changelogu.
Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.
int main(int argc, char *argv[]){
char nazev[100];
scanf("%s",nazev);
puts(nazev);
return 0;
}
int main(){
FILE * soubor;
char data[256];
unsigned int i = 0;
unsigned int znak;
while(i < 255 && (znak = getc(stdin)) != -1){
data[i];
i++;
}
data[i] = 0;
soubor = fopen(data, "rw");
fclose(soubor);
}
Tohle ma nevýhodu přečte to i znaky, které jsou nepovolené v cestě souboru.
Program pokud chceš aby program reagoval na nový řádek musíš místo -1 použít '\n'
data[i] = znak
Myslím si že autor, chtěl něco jiného, ale mlčí, přesto pro pořádek ještě oprav datový typ znak a podmýnku ciklu (test na -1 není dobře).
Ošetření, otevření, zápis a ošetření uzavření souboru už asi nebylo předmětem…
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *filename = "/svn/data/0007/gsm46/soubor";
//Try opening file
FILE *finput = fopen(filename, "r");
//Check result
if(finput == NULL)
{
fprintf(stderr, "Can't open %s\n", filename);
exit(EXIT_FAILURE);
}
//Get filesize
fseek(finput, 0L, SEEK_END);
int fsize = ftell(finput);
fseek(finput, 0L, SEEK_SET);
//Allocate buffer which is big enough to hold content of the file
char *fbuffer = (char *) malloc(fsize);
if(fbuffer == NULL)
{
fprintf(stderr, "Can't allocate %d bytes to hold buffer for file %s\n", fsize, filename);
exit(EXIT_FAILURE);
}
//Fill buffer with content of a file
int i;
for(i = 0; i < fsize; i++)
fbuffer[i] = fgetc(finput);
//Close the stream
fclose(finput);
//Now whole file is held in: fbuffer[0] ~ fbuffer[fsize-1]
//parse_data(fbuffer, fsize);
//Deallocate buffer
free(fbuffer);
return EXIT_SUCCESS;
}
const char *filename = "/svn/data/0007/gsm46/soubor";.
Možná to na PC projde, kompilátor za vás vygeneruje proměnnou filename na zásobníku a zinicializuje jí, ale není to standardní situace. Jednou, zvláště u embedded systémů můžete narazit, doslova, zápisem do ROM.
long, váš kód obsahuje nebezpečnou možnost overflow proměnné typu int, to jest znaménkové, takže nedefinované chování, může tedy dojít ke smazání domovského adresáře. Dále tam máte race-condition, kdy může dojít ke změně velikosti souboru mezi voláním ftell() a načítáním dat. Dotaz je k jazyku C, proč přetypováváte návratovou hodnotu typu void* na char*? Takové přetypování je v C implicitní a ukazuje vaši neznalost. Dále malloc chce hodnotu typu size_t, proč mu cpete int bez toho, aniž byste si ošetřil, že hodnota není větší než SIZE_MAX a jestli není záporná? .. pak známe velikost souboru, alokujete si buffer a pak načítáte jak debil po jednom znaku .. dobrá, řekněme že počítáte s race-condition, ale nikde nekontrolujete vrácení EOF? Vy vůbec nekontrolujete chybové kódy. Tak alespoň použijte C++, streamy a výjimky, když už jsem línej. Ale dotaz je k C, takže meh. Váš program má taky vadu, že ten soubor vůbec nemusíte načíst konzistentní, něco vám ho může změnit během čtení a dostanete kravinu. No, ale to asi nejde doladit bez použití platformě závislých fcí. Takže bagr hrabe. Nejlepším řešením je asi použít knihovnu JardikSuperLib, která má funkci jardik_superLibNacti_soubor(), která dělá přesně to, co tazatel požaduje.
Asi to patří k dword.
To to trvalo!, už jsem myslel, že budu muset něco napsat (nebyl bych tak zlý).
Ale ber to tak, že je zde možnost, že to overflow způsobí napsání super sci-fi knihy, tak bych to tak nezatracoval
.
ftell vrací long...mate pravdu, byla to chyba Dále tam máte race-condition, kdy může dojít ke změně velikosti souboru mezi voláním ftell() a načítáním dat... Ja to vim, jestli to umite se standardnimi funkcemi vyresit, rad se necham priucit.
Takové přetypování je v C implicitní a ukazuje vaši neznalost.Jestli najdu ve vasem prispevku jedno slovo navic, ktere tam nemuselo byt, taky to ukazuje vasi neznalost? Rekl bych ze to spis ukazuje, ze si o sobe myslite, ze jste mistr sveta. Co je implicitni, neznamena ze nemuze byt explicitne zopakovano (zdurazneno). (nezapomnel jsem includnout <stdlib.h>, takze se me to netyka)
pak známe velikost souboru, alokujete si buffer a pak načítáte jak debil po jednom znaku .. dobrá, řekněme že počítáte s race-condition, ale nikde nekontrolujete vrácení EOF?Protoze line-buffering debilku. Nekontroluju EOF, protoze chybu cteni v mem programu (napsanem pro zacatecnika) neuvazuju, velikost znam (to ze se zmeni behem volani programu take neuvazuju). No, ze jsem tu vubec neco psal :D Vite co vsichni zacatecnici? Bezte kvuli Jardika nekam, bud se naucte vsechno hned, nebo se na to rovnou vykaslete ;)
Z většinou nesouhlasím (například to lze vyřešit standardními funkcemi právě tak, že se ošetřují návratové hodnoty nebo|a se přidá feof()), jen se tě můžu zastat v tom, že souhlasím s:
Co je implicitni, neznamena ze nemuze byt explicitne zopakovano (zdurazneno).bo si myslím, že je to tak správně, protože pokud to explicitně uvedu, znamená to, že jsem si toho plně vědom a že jsem to tak chtěl a zrovna tam, kde je, si myslím, že patří. Ale ta ignorace ošetření je fatální, příště to napiš do komentářů, bo bez toho to navádí k prasáckým kódům, bo 90% kódu vzniká pomocí copy&paste a pokud to nenapíšeš ty a nikdo no neromázne, považuje to roj lidí za kopírování-hodné…
Vzájemně si můžete rozškubat občankyProč vzájemně, Jardík píše po svém, zbytečně konfliktně, ale víceméně slušně. Ten dword si na něm jenom léčí nějaký osobní problém. Ať si tedy občanku roztrhne sám a svoje problémy si vyřeší.
Ja to vim, jestli to umite se standardnimi funkcemi vyresit, rad se necham priucit.Neumím
Jestli najdu ve vasem prispevku jedno slovo navic, ktere tam nemuselo byt, taky to ukazuje vasi neznalost?Ano. Já nikde netvrdím, že všechno znám. Vlastně já neznám skoro nic. Jedině Bůh zná všechno, protože On vše vytvořil.
Rekl bych ze to spis ukazuje, ze si o sobe myslite, ze jste mistr sveta.Nemyslím si to. Pokud si počtete v mých příspěvcích různě zde po serveru, zjistíte, že vím, že jsem neschopný idiot s poruchou osobnosti.
Co je implicitni, neznamena ze nemuze byt explicitne zopakovano (zdurazneno)Ano, ale já bych ještě napsal nad řádek komentář, že vím, že je to implicitní, a že to explicitně zopakovávám, abych to zdůraznil i pro Jardíky, že to vím a jen to chcu zdůraznit
Protoze line-buffering debilku.Budiž, ale proč volat třeba milionkrát funkcu (třeba pro soubor 1M), když můžu zavolat jinou funkcu jednou?
Nekontroluju EOF, protoze chybu cteni v mem programu (napsanem pro zacatecnika) neuvazuju,Právě zě začátečníka byste měl nějak upozornit, že ta funkce může vrátit chybový kód, aby to vůbec věděl.
Vite co vsichni zacatecnici? Bezte kvuli Jardika nekam, bud se naucte vsechno hned, nebo se na to rovnou vykaslete ;)To ne, to nebyl účel mého komentáře. Ani to neberte jako nějaký útok na vaši osobu. Můj komentář měl být poučný pro tazatele, upoznit na různé chyby, nedostatky, atp. Já to neumím hezky podat však, aby to vyznělo nějak lépe.
Ten problém je mi důvěrně známy, ale tak nějak z druhé strany, jakmile dělám prkotinu v C tak téměř vždy (2× do roka, bo raději v C++ a nejraději C+) zapomenu, include-ovat stdlib.h a hledím jak čáp do trubky na ty warning-y (gcc).
Tiskni
Sdílej: