amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Locale ENV-Variablen [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

23.09.2002, 11:28 Uhr

StefanHaegele
Posts: 281
Nutzer
Hallo,

ist es möglich lokale ENV-Variablen zwischen verschiedenen Tasks zu benutzen, oder gibt es hier nur die Möglichkeit der globalen Variablen ?

Wo werden diese lokale Variablen gespeichert ?

Danke
Stefan

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 12:27 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
Ich verstehe nicht ganz, was du darunter verstehst. Um daten zwischen verschiedenen Programmen auszutauschen gibt es vielerlei Möglichkeiten, dazu gehören z.B. MessagePorts.

Wie willst du mit "lokalen" Env-Variablen die Synchronisation herstellen?

gruss

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 14:14 Uhr

StefanHaegele
Posts: 281
Nutzer
Hallo,

nein ich möchte diese Variablen nicht zur Synchronisation verwenden, da verwende ich Semaphore und/oder Messageport oder Signale.

Es geht mir darum, bei einem Project, welches mehrere Libraries, Devices und Gadgets nachlädt, eine Möglichkeit der Fehlerübermittlung im "INIT"-Fall zu haben. D.h. wenn die Library geöffnet wird und z.B. die "intuition.library" durch welche Grund auch immer nicht geöffnet werden kann, dies über ENV-Variablen kenntlich zu machen.

Stefan

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 18:54 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
Nuja, bei der intuition.library braucht man im Allgemeinen keine Sorge zu haben, dass diese nicht geöffnet werden kann, nichtsdestotzotz gibt es soetwas wie lokale Env-Variablen nicht. Wie schon gesagt ist für die Prozesskommunikation ein MSG Port zu empfehlen.

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 19:46 Uhr

Kronos
Posts: 1168
Nutzer
ENV-Variablen sind einfach nur Dateien die in Env: (RAM:env) bzw in Envarc: auf der
SYS-Partition liegen. Alles was du machen musst ist eine Datei im RAM: erzeugen,
und diese dann wieder auslesen. Viele Programme legen in Env: auch dieverse Config-
Dateien an.


Wobei mir jetzt nicht klar is was du mit "lokal" meinst, da ich das eher so verstehen
würde das wenn du zweimal das gleiche Program startest, sie doch beide über einen
seperaten Satz dieser Variablen verfügen. Das macht aber in dem von dir genannten
Anwendungsfall keinen Sinn :dance3:

MfG
Kronos
--

Only the good die young all the evil seem to live forever

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 20:40 Uhr

thomas
Posts: 7718
Nutzer

Natürlich gibt es keine "lokalen ENV-Variablen". "ENV-Variable" ist ein synonym für "globale DOS-Variable". Es gibt auch "lokale DOS-Variablen".

Ich denke du beziehst dich hier auf die Funktion SetVar() und die Flags GVF_LOCAL_ONLY und GVF_GLOBAL_ONLY.

Die globalen DOS-Variablen werden, wie schon gesagt, im ENV-Verzeichnis gespeichert und sind für alle Prozesse verfügbar, die lokalen sind Teil der Process-Struktur und nur diesem Prozess zugänglich. Lokal eben.

Wichtig ist hier der Begriff Process. Da diese Variablen DOS-Eigenschaften sind, funktionieren sie nur in Tasks mit Process-Strukturen. Einfache Tasks haben keine DOS-Variablen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: home.t-online.de/home/thomas-rapp/

[ - Antworten - Zitieren - Direktlink - ]

23.09.2002, 20:59 Uhr

Kronos
Posts: 1168
Nutzer
Kleiner Vorschlag:

Lass von dem ersten Task eine Datei "Stefans_error_codes" in T: (liegt auch im Ram)
anlegen, und wenn der zweite Task auftaucht überprüfft er zuerst ob die Datei
existiert. Wenn diese Datei existiert sollte jeder Task sie im Lese-Modus geöffnet
lassen, und beim Beenden versuchen sie zu löschen. Das klappt natürlich nur beim
letzten Task, und du hinterlässt keine Spuren im System.

MfG
Kronos
--

Only the good die young all the evil seem to live forever
--

Only the good die young all the evil seem to live forever

[ - Antworten - Zitieren - Direktlink - ]

24.09.2002, 08:49 Uhr

StefanHaegele
Posts: 281
Nutzer
Hallo,

danke für die Antworten.

Ich hatte es mir eigentlich so gedacht, dass über die Funktion SetVar() im Fehlerfall, solange das Programm noch nicht vollständig initialisiert ist, eben diese lokalen Variablen benutzt werden.

Es geht hier um ca. 2 Libraries und 4 Gadgets welche nachgeladen werden. Sobald diese ordnungsgemäß initialisiert sind, ist die Fehlerausgabe kein Problem mehr.

Ich werde jetzt mal versuchen, einfach im Fehlerfall ENV-Variablen zu erzeugen, welche als Inhalt den Fehlertext enthalten und als Namen das Object haben. ( z.B.: Server.window: Kann Tools.library nicht öffnen ).

Wie gesagt es geht hier alleine darum , den Benutzer eine Ausage geben zu können warum das Programm nicht startet( Aber nur solange bis die Fehlerausgabe initialisiert ist ).

Stefan


[ Dieser Beitrag wurde von StefanHaegele am 11.11.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.09.2002, 15:30 Uhr

Micha1701
Posts: 938
Nutzer
Hi!

Also ich benutze zur Fehlerausgabe am Anfang eines Programmes einfach CON: . Damit kann ich ein Fenster auf der Workbench aufmachen (einfach mit einem Open() ), den Fehlertext reinschreiben und nach einer kurzen Zeit wieder zumachen.

Sofern alle Libraries zur "schönen" Fehlerausgabe bereits sind, dann kann ich ja einen richtigen Requester benutzen....

--
:boing: Micha :boing:

Look at my HP: http://www.lanser-online.de.vu



[ - Antworten - Zitieren - Direktlink - ]

10.11.2002, 00:55 Uhr

Uri]CoM[
Posts:
[Ex-Mitglied]
Warum willst du so etwas wie ENV-Variablen benutzen ?(
Nimm dafür doch einfach ganz normale globale Variablen und einen EasyRequest :O

[ Dieser Beitrag wurde von Uri]CoM[ am 10.11.2002 editiert. ]

[ - Ändern - Antworten - Zitieren - Direktlink - ]

10.11.2002, 13:29 Uhr

Uri]CoM[
Posts:
[Ex-Mitglied]
Und, ehem, öffne doch besser alles was du brauchst im Hauptprogramm, bevor du die Tasks erzeugst.

[ - Ändern - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Locale ENV-Variablen [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.