🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #16

Re: flux standard declares en lvalue !

#16
From: Antoine Leca
Date: Wed, 05 Apr 2000 00:00
47 lines
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-mail
References: <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