Portál AbcLinuxu, 14. května 2025 20:13

Dotaz: Je opravdu C a C++ nebezpecny?

24.5.2020 14:56 poky74
Je opravdu C a C++ nebezpecny?
Přečteno: 692×
Odpovědět | Admin
Vyvojari Chromia pisi o nevhodnosti techto jazyku. Melo by se jim podle nich vyhybat. zdroj

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.5.2020 15:15 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Odpovědět | | Sbalit | Link | Blokovat | Admin
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
debian.plus@protonmail.com
Řešení 1× (Petr Šobáň)
24.5.2020 16:00 Radovan
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Q: "Jsou zbraně opravdu nebezpečné?"

A: "Ne, nebezpeční jsou pitomci, kterým se dostanou do rukou."
Řešení 1× (Petr Šobáň)
24.5.2020 17:11 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyvojari Chromia pisi o nevhodnosti techto jazyku.
Nepíší.
Melo by se jim podle nich vyhybat.
Ani tohle nepíší.

Poradit potřebujete s čím?
24.5.2020 23:04 Jezek
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Takze popirate obsah clanku?
25.5.2020 02:45 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?

Nepopírá.

25.5.2020 08:02 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Nepopírám. Tazatel totiž ke svým dojmům připojil odkaz na článek, který nic z těch dojmů nepotvrzuje.
24.5.2020 17:58 _
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Odpovědět | | Sbalit | Link | Blokovat | Admin
céčko možná, ale moderní C++ se od Rustu moc neliší. Že ho lidi nechcou používat je problém i toho rustu ;-)
Josef Kufner avatar 25.5.2020 11:24 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Co jsem byl nedávno na pár přednáškách o C++, tak rozdíl mezi Rustem a C++ je hlavně v té bezpečnosti, kdy Rust (a většina dalších jazyků) nedovolí vytvořit třeba i celkem hezký kód, který však má nedefinované chování a v krajních případech se bude chovat podivně. Odcházel jsem odtamtud a říkal jsem si: „zlaté PHP“.
Hello world ! Segmentation fault (core dumped)
24.5.2020 23:23 #Tom
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co Valgrind? Základní nástroj 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.
24.5.2020 23:29 _
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Tak samozřejmě že řešením není implementovat nástroje k tomu určené a modernizovat dvacet let starý codebase alespoň na C++11 se smart pointery, rozumným řešením je přeci celý projekt zgruntu přepsat do nového cool jazyku. /s

Ona ta zpětná kompatibilita C/C++ není jen tak pro srandu králíkům, je sice otravná ale umožňuje podobné problémy řešit.
25.5.2020 00:20 billgates | skóre: 27
Rozbalit Rozbalit vše Re: Je opravdu C a C++ nebezpecny?
Pripadne je mozne pouzit sanitizery (neviem, ako to prelozit). Je to dobra alternativa ku valgrindu, kedze ich zaber ma dost velky prienik, pricom tieto sanitizery nepredstavuju az taku casovu penaltu.

Osobne pri vyvoji pouzivam parametre:
-std=c++17 -fPIE -Wall -Wextra -Wshadow -Werror -fstack-protector-strong -fsanitize=address -fsanitize=undefined -fsanitize=leak -fno-omit-frame-pointer
Toto 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).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.