Path: ...!feeds.phibee-telecom.net!news.mixmin.net!aioe.org!news.alphanet.ch!alphanet.ch!.POSTED!not-for-mail From: Marc SCHAEFER Newsgroups: fr.comp.os.linux.configuration,fr.comp.lang.c Subject: Re: /etc/exports option unsecure Supersedes: Followup-To: fr.comp.lang.c Date: Sat, 12 Nov 2022 09:29:17 -0000 (UTC) Organization: Posted through news.alphanet.ch Message-ID: References: <6369ff7f$0$31523$426a74cc@news.free.fr> 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 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