From: "David C. Hoos, Sr" <david.c.hoos.sr@ada95.com>
Subject: Re: Reading environment variables in ADA?
Date: 1998/09/12
Date: 1998-09-12T00:00:00+00:00 [thread overview]
Message-ID: <dBQfzvl39GA.196@samson.airnet.net> (raw)
In-Reply-To: 6tdl75$qs6$2@nyheter.chalmers.se
Stefan Lingdell wrote in message <6tdl75$qs6$2@nyheter.chalmers.se>...
>How do you read environment variables in ADA? I'm
>programming under UNIX (SunOS) if that makes any
>difference.
>
You didn't really give full information -- e.g., what compiler you are
using), so the answer cannot be devinitive.
If you are using GNAT, you can use the (non-portable) Gnat.Os_Lib package,
as shown in this simple one-liner program:
with Ada.Command_Line;
with Ada.Text_Io;
with Gnat.Os_Lib;
procedure Env is
begin
Ada.Text_Io.Put_Line
(Gnat.Os_Lib.Getenv (Ada.Command_Line.Argument (1)).all);
end Env;
If you want a more portable solution, you can get the an implementation of
the IEEE Standards 1003.5: 1992 and IEEE STD 1003.5b: 1996, also known as
the POSIX Ada Bindings, called florist at
ftp://ftp.cs.fsu.edu/pub/PART/POSIX-DOT5
It has a host of subprograms for manipulating environment variables in the
package Posix.Process_Environment, viz.:
procedure Copy_From_Current_Environment
(Env : in out Environment);
procedure Copy_To_Current_Environment
(Env : in Environment);
procedure Copy_Environment
(Source : in Environment;
Target : in out Environment);
function Environment_Value_Of
(Name : POSIX.POSIX_String;
Env : Environment;
Undefined : POSIX.POSIX_String := "")
return POSIX.POSIX_String;
function Environment_Value_Of
(Name : POSIX.POSIX_String;
Undefined : POSIX.POSIX_String := "")
return POSIX.POSIX_String;
function Is_Environment_Variable
(Name : POSIX.POSIX_String;
Env : Environment)
return Boolean;
function Is_Environment_Variable
(Name : POSIX.POSIX_String)
return Boolean;
procedure Clear_Environment
(Env : in out Environment);
procedure Clear_Environment;
procedure Set_Environment_Variable
(Name : in POSIX.POSIX_String;
Value : in POSIX.POSIX_String;
Env : in out Environment);
procedure Set_Environment_Variable
(Name : in POSIX.POSIX_String;
Value : in POSIX.POSIX_String);
procedure Delete_Environment_Variable
(Name : in POSIX.POSIX_String;
Env : in out Environment);
procedure Delete_Environment_Variable
(Name : in POSIX.POSIX_String);
function Length (Env : Environment) return Natural;
function Length return Natural;
generic
with procedure Action
(Name : in POSIX.POSIX_String;
Value : in POSIX.POSIX_String;
Quit : in out Boolean);
procedure For_Every_Environment_Variable
(Env : in Environment);
generic
with procedure Action
(Name : in POSIX.POSIX_String;
Value : in POSIX.POSIX_String;
Quit : in out Boolean);
procedure For_Every_Current_Environment_Variable;
-- Process Working Directory
procedure Change_Working_Directory
(Directory_Name : in POSIX.Pathname);
function Get_Working_Directory return POSIX.Pathname;
As a final alternative, you can declare your own function, using the pragma
Import to interface to the Solaris runtime function getenv.
Hope this helps
David C. Hoos, Sr.
next prev parent reply other threads:[~1998-09-12 0:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-09-12 0:00 Reading environment variables in ADA? Stefan Lingdell
1998-09-12 0:00 ` David C. Hoos, Sr [this message]
1998-09-13 0:00 ` Steven Hovater
1998-09-17 0:00 ` Gisle S{lensminde
1998-10-06 0:00 ` Matthew Heaney
1998-10-06 0:00 ` dewarr
1998-10-06 0:00 ` Robert I. Eachus
1998-10-07 0:00 ` dewarr
1998-10-07 0:00 ` Robert I. Eachus
1998-10-13 0:00 ` Simon Wright
1998-09-17 0:00 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox