Article View: fr.comp.lang.c
Article #14Re: flux standard declares en lvalue !
From: Eric Levenez
Date: Tue, 04 Apr 2000 00:00
Date: Tue, 04 Apr 2000 00:00
43 lines
2558 bytes
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-mailReferences:
<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