Deutsch English Français Italiano |
<tknp1d$6v3$1@shakotay.alphanet.ch> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!feeds.phibee-telecom.net!news.mixmin.net!aioe.org!news.alphanet.ch!alphanet.ch!.POSTED!not-for-mail From: Marc SCHAEFER <schaefer@alphanet.ch> Newsgroups: fr.comp.os.linux.configuration,fr.comp.lang.c Subject: Re: /etc/exports option unsecure Supersedes: <tknout$6uj$1@shakotay.alphanet.ch> Followup-To: fr.comp.lang.c Date: Sat, 12 Nov 2022 09:29:17 -0000 (UTC) Organization: Posted through news.alphanet.ch Message-ID: <tknp1d$6v3$1@shakotay.alphanet.ch> References: <tk5q6i$2g2ek$1@dont-email.me> <6369ff7f$0$31523$426a74cc@news.free.fr> <tkj862$j30b$1@dont-email.me> <tkjco0$r73$1@vmserveur.novazur.fr> <tkjg61$jmrn$1@dont-email.me> <tklst8$6qa$1@vmserveur.novazur.fr> <tklu00$1r51$1@gioia.aioe.org> <tkm05o$hmc$1@vmserveur.novazur.fr> <tkm2g0$tfa0$1@dont-email.me> <tkm3k1$nci$2@shakotay.alphanet.ch> <tkm4vp$tnmp$1@dont-email.me> <tkm5ne$et$1@shakotay.alphanet.ch> <tknod5$6ne$1@gioia.aioe.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Injection-Date: Sat, 12 Nov 2022 09:29:17 -0000 (UTC) Injection-Info: shakotay.alphanet.ch; posting-account="schaefer"; logging-data="7139"; mail-complaints-to="usenet@alphanet.ch"; posting-host="634ce6c9682d817d72f6177875e2bb4f.nnrp.alphanet.ch" User-Agent: tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-22-amd64 (x86_64)) Cancel-Key: sha256:9sTncnuS5Kjk3i/eIFg0eadY5lPriHV//cYsEWep7iw= Cancel-Lock: sha256:12o6zbxnk16DY+CDZTB87ar2f5N2kEAQXpIpBsS+HcQ= sha256:s7LqpN5mZ1IoBEsm8erZsAxe2FewC+K3P/6L/j+X0pc= Bytes: 2928 Lines: 44 [ Followup-To: fr.comp.lang.c ] Didier <db@invalid.invalid> wrote: > C'est sans doute pas top, mais au moins c'est différent de la relation > de comparaison, au sens mathématique comme au sens commun. En fait, le plus grand problème de la notation = (affectation) et == (comparaison) apparaît dans les langages très expressifs comme C ou Perl. Par exemple en C if (f = tcp_connect()) { } Cela appelle tcp_connect, affecte la valeur à la variable f, puis teste si c'est différent de zéro. C'est très souvent utilisé et c'est légitime. Mais peut-être que le codeur voulait simplement comparer f au résultat de tcp_connect() sans affecter? Au moins, gcc fait un warning (avec -Wall), et suggère la forme: if ((f = tcp_connect())) { } pour lui montrer que l'intention était bien d'affecter à f puis de tester le résultat. Une bonne pratique si l'on veut éviter une affectation par erreur (écriture de == remplacée par erreur par =) est la suivante: # risque si on oublie un = if (c == 42) { } # pas de risque, 42 pas affectable, l'oubli d'un = fera # une erreur, car la partie gauche n'est pas affectable if (42 == c) { } -- Et pour les afficionados du langage Newton [1] TAKE PUSH programme; [1] https://hopl.info/showlanguage.prx?exp=965&language=Newton