comp.lang.ada
 help / color / mirror / Atom feed
From: "jimmaureenrogers@worldnet.att.net" <jimmaureenrogers@worldnet.att.net>
Subject: Re: Is there some way of calling a system command?
Date: 11 Jun 2006 06:19:12 -0700
Date: 2006-06-11T06:19:12-07:00	[thread overview]
Message-ID: <1150031952.347657.244910@i40g2000cwc.googlegroups.com> (raw)
In-Reply-To: pan.2006.06.11.08.46.14.620513@hotmail.com

Aldebaran wrote:
> I am a newbie Ada-programmer and need help with this topic.
> In C one can launch a system command, for instance through
>  the following function.
>
>  system("ls ");
>
> or in JAVA
>
>  exec("ls");
>
> Is there some similar  way of calling a system command in ADA?

The easiest way is to simply call the C system command.
The example below was run on my Windows XP system.

with Interfaces.C.Strings;
use Interfaces.C.Strings;

procedure System_Example is
   function System_Call(Command : Chars_Ptr) return Interfaces.C.Int;
   pragma Import(Convention => C, Entity => System_Call,
      External_Name => "system");
   Rc : Interfaces.C.Int;

begin
   Rc := System_Call(New_String("dir"));

end System_Example;

The important part of the example is the creation of a function
specification I have named System_Call. That function specification
take a parameter of Chars_Ptr, which corresponds to a C char *.
The function specification is used as the Ada interface to the C
system call. The compiler is notified of that association through
the pragma Import. That pragma causes the compiler to link the C
system command and call it whenever System_Call is called in the
Ada code.

Jim Rogers




  reply	other threads:[~2006-06-11 13:19 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-11  8:46 Is there some way of calling a system command? Aldebaran
2006-06-11 13:19 ` jimmaureenrogers [this message]
2006-06-11 14:35   ` Aldebaran
2006-06-15 14:03   ` Michel Simeon
2006-06-15 14:11     ` Ludovic Brenta
2006-06-15 14:57       ` Michel Simeon
2013-11-26 15:35   ` tolkamp
2013-11-26 16:10     ` adambeneschan
2013-11-26 18:54       ` tolkamp
2013-11-26 19:49         ` adambeneschan
2013-11-26 21:03           ` Dirk Heinrichs
2013-11-27  7:02           ` Georg Bauhaus
2013-11-27 14:10             ` Eryndlia Mavourneen
2013-11-27  8:52           ` Jacob Sparre Andersen
2013-11-27 18:56           ` tolkamp
2013-11-26 18:24     ` Per Sandberg
2013-11-26 18:58       ` Jeffrey Carter
2013-11-26 20:31         ` Dmitry A. Kazakov
2013-11-26 22:52           ` Randy Brukardt
2013-11-28  5:37         ` Per Sandberg
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox