Portál AbcLinuxu, 14. května 2025 20:13
Řešení dotazu:
Je opravdu C a C++ nebezpecny?Napisat kod bezpecny v C vs RUST je v RUST lahsie. C umoznuje lahsie si strelit do nohy. Az velmi lahko. A niekedy s falosnym pocitom spravnosti. Preco lahko, tak si o C, C++ a Ruste na wikipedii.
// falosnym pocitom spravnosti char *pole; pole=malloc(50); if(pole == NULL) { fputs("error alloc memory", stderr); exit(1); } vstup_dlzka=strlen(vstup_text); // = 55 pole[vstup_dlzka]='!'; // toto moze za istych okolnosti fungovat bezchybne a niekedy skoncil chybou
Vyvojari Chromia pisi o nevhodnosti techto jazyku.Nepíší.
Melo by se jim podle nich vyhybat.Ani tohle nepíší. Poradit potřebujete s čím?
Nepopírá.
memcheck
pomáhá odhalovat zmíněné chyby. Pravda, u složitých a výpočečně náročných programů může zabrat běh programu ve Valgrindu nesnesitelně mnoho času.
-std=c++17 -fPIE -Wall -Wextra -Wshadow -Werror -fstack-protector-strong -fsanitize=address -fsanitize=undefined -fsanitize=leak -fno-omit-frame-pointerToto mi pomaha odhalit 99.9999% blbosti, ktore sa mi podari obcas dat do kodu. Akurat sa treba pripravit na to, ze kompilacia bude trvat neuveritelne dlho, vyzerie mnozstvo ramky a vysledne binarky budu mat stovky MiB az jednotky GiB. Na druhu stranu, beh je potom len o nieco pomalsi, nez kod bez sanitizerov, takze sa daju vykonavat testy skoro na urovni realneho nasadenia (vyhoda oproti valgrindu).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.