Portál AbcLinuxu, 12. listopadu 2025 22:28
Hmm, ten patche vypadá hodně usměvně. Bohužel, něčemu podobnému se v C asi zabránit nedá, co?
geteuid je pointer na funkci, zatímco geteuid() je volání funkce, což je céčku jedno. Nebo existuje nějaký parser, který by na podobné konstrukce upozornil?
).
#define ..., vid...
-Wall, dokonce mám neblahé tušení, že snad i přímo norma specifikuje, že to musí být přípustné (ale ruku do ohně bych za to nedal, musel bych se podívat). Je to celkem logické, idiomy typu 'if (!p)' se používají skoro všude. Navíc se i NULL často #definuje jako '0' místo '((void*) 0)'.
#ifdef __cplusplus #define NULL 0 #else #define NULL ((void*) 0) #elif
while (curr = next_foo(bar)) baz(curr); while ((curr = next_foo(bar)) != NULL) baz(curr);Stejně nechápu proč vlastně C trvá na závorkách kolem expr v příkazech
if, while, for, switch, protože jsou obvykle redundantní a pouze snižují čitelnost. Zlatej python.
. Čímž nechci C shazovat, protože je to můj oblíbený jazyk, jenom je určen na něco trochu jiného.
= pro přiřazení a == pro porovnání: v programech se statisticky výrazně častěji přiřazuje než porovnává na rovnost, proto je pro přiřazení zvolen kratší operátor; na rozdíl od Pascalu, který byl stvořen jako jazyk pro výuku, jehož návrh zohledňuje spíše teoretická hlediska než praktická. Jinak by totiž Wirtha nikdy nemohlo napadnout něco tak šíleného, jako dát operátorům and a or vyšší prioritu než porovnávání (a takových příkladů by se v Pascalu našlo víc).
. Jinak to srovnání bylo C vs Python, Pascal bych sem opravdu netahal.
Ale lze používat pomocné programy (jako např. splint), které leccos najdou.
).
/* First the options that are only allowed for root */ if (getuid() == 0 || geteuid() != 0)Jo a chybějící function call by mělo gcc v tomto případě hlásit, protože geteuid bez závorek je reference na externí symbol, tudíž je blbost jej castovat na bool.
X nemusí mít suid bit, pokud ho nepotřebujete spouštět interaktivně pomocí startx. Což dnes naprostá většina uživatelů nepotřebuje.
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.