g++ Ärger

Jan 'Red Bully' Seiffert redbully at cc.fh-luh.de
Mon Apr 18 17:12:04 CEST 2005


Jan-Benedict Glaw schrieb:
> On Mon, 2005-04-18 16:24:05 +0200, Jan 'Red Bully' Seiffert <redbully at cc.fh-luh.de> wrote:
> 
>>Jan-Benedict Glaw schrieb:
>>
>>[snip-snap unsere Privatdiskussion ueber EXIT_{WAS_AUCH_IMMER}]
>>
>>>Siehe oben. Nicht zwischen return und exit zu unterscheiden _mindert_
>>>hier die Portabilität. Denn zu schnell hat man da mal ein
>>>
>>>	if (! some_function ())
>>>		printf ("hat geklappt\n");
>>>
>>
>>OK, ich hab mich wohl zu Kurz ausgedrueckt...
>>Ich benutze es ja *nicht* als return-Wert von irgentwelchen meiner
>>"inneren" Funktionen (die sind meist nur bool (C99)).
>>Ich meinte _nur_ das return aus main(). Ich dachte, du meintest das
>>gleiche return.
> 
> 
> Wenn ich mich nicht irre, geht das nach hinten los... Die libc-Funktion,
> die main() aufruft,
Du meinst crt0.o? Bzw. __entry oder __start naja, das was halt aus dem
ELF-Header als erstes angesprungen wird...

> schreibt ggf. den Return-Wert um, bevor er an
> _exit() übergeben wird.
Hmmm, sowas hab ich mal gehoert,

> Auf Mainstream-Architekturen macht das nichts
> (weil nichts angepackt wird), aber VMS ist damit außen vor.
> 
aber habe eben auch gehoert, das man deshalb halt EXIT_BLA nehmen soll,
dann passiert "Das Richtige"[TM].

Der crt0-stub eines ANSI-Kompatiblen Compiler sollte die Werte der
EXIT_BLA-Macros nach main-return _und_ exit() so umschreiben (oder der
einfachkeit gleich so definieren), dass die Ausfuehrungsumgebung das
richtige sieht.

Tja, leider schlafe ich noch nicht mit dem C-Std. unterm Kopfkissen, ich
versuche nur mein bestes... nochmal d.c.l.c. dazu durchgucken.

> MfG, JBG
> 
> 
Gruss
	Jan

-- 
"Don't open the gates. Who the hell needs a wooden horse THAT size ?"
(unknown inhabitant of Troja)



More information about the Linux mailing list