🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: flux standard declares en lvalue !

#14
From: Eric Levenez
Date: Tue, 04 Apr 2000 00:00
43 lines
2558 bytes
Laurent Deniau <Laurent.Deniau@cern.ch> wrote:
> Je ne sais si c'est un bug mais la version de gcc **egcs-2.91.66
> 19990314/Linux (egcs-1.1.2 release)** sur architecture linux 2.2 (sur la
> 2.0 tout est ok) declare les flux standards stdin, stdout et stderr comme
> variables externes (/usr/include/stdio.h):
> 
> /* Standard streams.  */
> extern FILE *stdin;             /* Standard input stream.  */
> extern FILE *stdout;            /* Standard output stream.  */
> extern FILE *stderr;            /* Standard error output stream.  */

C'est la m�me chose sur Lynx OS depuis plus de 4 ans :-)
Donc ce n'est pas un bug, mais une nouvelle caract�ristique.

> En consequence ces flux ne sont plus constants et peuvent etre modifies.
> D'autre part, on ne peut plus faire (ce qui me gene le plus):
> 
> FILE *file_err = stderr;
> 
> Est ce que quelqu'un peut m'expliquer ce changement par rapport a 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.

Je pense que le seul moyen est de mettre le code :

	file_err = stderr;

dans une routine d'init. S'il n'y en a pas, alors il faut ruser et faire
un truc du genre :

FILE *file_err = NULL;	/* D�claration globale */

et en t�te de chaque routine :

	if (!file_err)
		file_err = stderr;

Ce n'est pas joli, mais cela devrait faire la farce.

-- 
�ric L�v�nez <http://perso.wanadoo.fr/levenez>
Unix is not only an OS, it's a way of life.
Technical Details
Message-ID: <8cd85n$8h6$2@minus.oleane.net>
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: 108d68,cf0ca10e654ef794
X-Google-Attributes: gid108d68,public
X-Google-Thread: f9822,cf0ca10e654ef794
X-Google-Attributes: gidf9822,public
From: Eric Levenez <eric.levenez@wanadoo.fr>
Subject: Re: flux standard declares en lvalue !
Date: 2000/04/04
Message-ID: <8cd85n$8h6$2@minus.oleane.net>
X-Deja-AN: 606648266
Content-Transfer-Encoding: 8bit
References: <38EA0F81.14175F08@cern.ch>
X-Image-Url: http://perso.wanadoo.fr/levenez/images/eric.jpeg
Content-Type: text/plain; charset=iso-8859-1
X-Complaints-To: abuse@oleane.net
X-Trace: minus.oleane.net 954868727 8742 62.161.78.112 (4 Apr 2000 17:18:47 GMT)
X-Face: (X#mE%m~xkAcHidWL",*K0}^dSr;O@^GQMld)TyxVIy%v:.1m4(W%CJP.f+${`En!#Jiy6+do!U$l%RTtl9Ag_cZc[LLljpp_Mdil{A%xC4l9.!.W+`-}9vFjrxr
Organization: Tasha Inc.
X-Url: http://perso.wanadoo.fr/levenez
Mime-Version: 1.0
NNTP-Posting-Date: 4 Apr 2000 17:18:47 GMT
Newsgroups: fr.comp.lang.c,cern.linux