🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #878

Re: Kommandozeilenargumente bevor main()

#878
From: Ullrich von Bassewitz
Date: Sat, 25 Nov 1995 13:17
35 lines
1999 bytes
Boris Lohner (boris@raybbs.camelot.de) wrote:
> Die Frage ist also:
> Wie komm ich auf portable Weise noch vor dem Eintritt in main(...) an die
> Kommandozeilenargumente heran?

Überhaupt nicht.

Das Problem liegt in Deinem Falle darin, daß Du mit Deinen globalen Objekten
nicht vorsichtig gewesen bist, bzw. diese falsch nutzt. Der Satz

> Das Objekt erst in main(...) zu initialisieren ist unguenstig, da mehrere
> andere ebenfalls globale Objekte bereits vor main(...) Gebrauch von diesem
> bestimmten Objekt machen.

deutet auf Deinen Irrtum hin: Es gibt _keine_ garantierte Reihenfolge für
die Initialisierung globaler Objekte. D.h. Du kannst Dich _nie_ darauf
verlassen, daß Deine globalen Objekte in einer bestimmten Abfolge zur
Verfügung stehen. Selbst wenn Du auf irgendeine Art und Weise an Kopien
von argc und argv rankommst, dann ist immer noch nicht garantiert, daß Dein
globales Objekt, das diese auswertet, auch vor allen anderen globalen
Objekten, die davon abhängen, initialisiert wird.

Globale Objekte sind für manche Probleme elegante Lösungen. Du mußt aber
darauf achten, daß es keinerlei implizite oder explizite Abhängigkeiten
dieser Objekte untereinander gibt, und daß Du nicht implizit oder explizit
von einer bestimmten Reihenfolge bei der Initialisierung oder beim Aufruf
der Destruktoren ausgehst.

Gruß


        Uz

-- 
Ullrich von Bassewitz                              uz@ibb.schwaben.com
Technical Details
Message-ID: <7Y16BM3K@wuschel.ibb.schwaben.com>
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail
References: <ftn_2.2480.843.0_30b624ab_Boris.Lohner@camelot.de>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail
From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz)
Subject: Re: Kommandozeilenargumente bevor main()
Date: 25 Nov 1995 13:17:05 GMT
References: <ftn_2.2480.843.0_30b624ab_Boris.Lohner@camelot.de>
Message-ID: <7Y16BM3K@wuschel.ibb.schwaben.com>
Reply-To: uz@ibb.schwaben.com
Organization: Ingenieurbuero von Bassewitz
X-Newsreader: TIN [version 1.2 PL2]
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit