Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.
České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.
Microsoft Defender nově podporuje linuxové desktopy.
Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).
Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.
KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
argv[] do připraveného pole. Ovšem tištění platných parametrů problém nedělá. Zde je část zdrojového kódu:
#include < stdio.h >
#include < stdlib.h >
#include < string.h >
int main(int argc, char * argv[])
{
char argvtemp[100];
strcpy(argvtemp,argv[1]);
.
.
.
Při spuštění dělá toto:
~$ ./program --parametr="Super věc"
Neoprávněný přístup do paměti (SIGSEGV)
Když se na to podívám přes gdb tak uvidím toto:
Breakpoint 1, main (argc=1, argv=0xbf864434) at desccreator.c:8
8 strcpy(argvtemp,argv[1]);
(gdb) step
Program received signal SIGSEGV, Segmentation fault.
0xb7e22cc0 in strcpy () from /lib/libc.so.6
A když napíši tohle namísto strcpy():
printf("%s\n",argv[1]);
přeložím a spustím, dostanu normálně:
~$ ./program --parametr="Super věc"
--parametr="Super věc"
Nevíte někdo co s tím? Už si opravdu nevím rady. Připadá mi to na hlavu postavené, strcpy() přece z argv[] jen čte stejně jako printf(), tak proč u kopírování dochází k chybě a u tištění ne? Do programu takhle načítám data poprvé takže možná že dělám někde chybu. Budu vděčný za každou radu.
argc funkce main. Dále je třeba dát pozor na délku řetězce.
char *p;
…
if (argc >= 1) {
p = malloc(strlen(argv[1])+1);
if (p != NULL) {
strcpy(p, argv[1]);
}
}
…
argc >= 2.
Breakpoint 1, main (argc=1, argv=0xbf864434) at desccreator.c:8argc=1 a ty sa snazis citat z argv[1].
gdb už ano. Proto ten argc=1, což jsem si měl taky všimnout. Takže během všelijakých úprav se zdrojovým kódem jsem dostávál zkreslené informace o pravém původci chyby což v mém případě byla malá chyba v jedné funkci kterou jsem si napsal a chtěl rychle otestovat, proto ten nedotažený kód. Ale jak vidno měl jsem ho přece v tomto případě dotáhnout, dříve bych přišel kde dělám chybu. Taková stupidní chyba - připadám si jak blbec. Velice díky za rady.
Tiskni
Sdílej: