Article View: fr.comp.lang.c
Article #16Re: flux standard declares en lvalue !
From: Antoine Leca
Date: Wed, 05 Apr 2000 00:00
Date: Wed, 05 Apr 2000 00:00
47 lines
2303 bytes
2303 bytes
Laurent Deniau �crivit : > > Je ne sais si c'est un bug Ce n'en est pas un. > mais la version de gcc declare les flux standards stdin, stdout et > stderr comme variables externes (/usr/include/stdio.h): > > /* Standard streams. */ > extern FILE *stdin; /* Standard input stream. */ <snip> > En consequence ces flux ne sont plus constants et peuvent etre modifies. [ les pointeurs vers les "flux" ] Oui. Et c'est parfaitement autoris� par la norme. > D'autre part, on ne peut plus faire (ce qui me gene le plus): > > FILE *file_err = stderr; [ au niveau global ] Cela n'a jamais �t� explicitement autoris�. C'�tait une erreur des versions pr�c�dentes de ton compilateur+biblioth�que que de l'autoriser. > Est ce que quelqu'un peut m'expliquer ce changement par rapport a la norme > ISO C90 Il n'y a aucun changement *par rapport � la norme*. Il y a au contraire rapprochement de la norme ISO C90. > et a defaut me dire comment initialiser avant le lancement du > programme la variable statique file_err locale a une fonction > qui est dans une bibliotheque dynamique. Si tu relis la question, tu verras que la r�ponse est : c'est impossible en C (o� les variables statiques sont initialis�es au moment de l'�dition de liens, donc avant l'ex�cution de la moindre fonction). cf. les solutions d'�ric pour contourner le probl�me. Antoine
Technical Details
Message-ID:
<38EB0898.263118E@renault.fr>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<38EA0F81.14175F08@cern.ch>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: f9822,cf0ca10e654ef794 X-Google-Attributes: gidf9822,public X-Google-Thread: 108d68,cf0ca10e654ef794 X-Google-Attributes: gid108d68,public From: Antoine Leca <Antoine.Leca@renault.fr> Subject: Re: flux standard declares en lvalue ! Date: 2000/04/05 Message-ID: <38EB0898.263118E@renault.fr> X-Deja-AN: 606979690 Distribution: world Content-Transfer-Encoding: 8bit References: <38EA0F81.14175F08@cern.ch> X-Accept-Language: ca,fr Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: abuse@renault.fr X-Trace: ons.mc2.renault.fr 954927258 26289 172.26.137.60 (5 Apr 2000 09:34:18 GMT) Organization: RENAULT (mais cette contribution est personnelle et n'engage pas RENAULT) Mime-Version: 1.0 NNTP-Posting-Date: 5 Apr 2000 09:34:18 GMT Newsgroups: fr.comp.lang.c,cern.linux