Next: , Previous: A.14, Up: Annex A


A.15 The Package Command_Line

1
The package Command_Line allows a program to obtain the values of its arguments and to set the exit status code to be returned on normal termination.

Static Semantics

2
The library package Ada.Command_Line has the following declaration:

3

     package Ada.Command_Line is  pragma Preelaborate(Command_Line);

4

       function Argument_Count return Natural;

5

       function Argument (Number in Positive) return String;

6

       function Command_Name return String;

7

       type Exit_Status is implementation−defined integer type;

8

       Success constant Exit_Status;
       Failure constant Exit_Status;

9

       procedure Set_Exit_Status (Code in Exit_Status);

10

     private
       ... −− not specified by the language
     end Ada.Command_Line;
     

11

     function Argument_Count return Natural;

12

If the external execution environment supports passing arguments to a program, then Argument_Count returns the number of arguments passed to the program invoking the function. Otherwise it returns 0. The meaning of "number of arguments" is implementation defined.

13

     function Argument (Number in Positive) return String;

14

If the external execution environment supports passing arguments to a program, then Argument returns an implementation−defined value corresponding to the argument at relative position Number. If Number is outside the range 1..Argument_Count, then Constraint_Error is propagated.

15

     function Command_Name return String;

16

If the external execution environment supports passing arguments to a program, then Command_Name returns an implementation−defined value corresponding to the name of the command invoking the program; otherwise Command_Name returns the null string.

16.1/1

     type Exit_Status is implementation−defined integer type;

17

The type Exit_Status represents the range of exit status values supported by the external execution environment. The constants Success and Failure correspond to success and failure, respectively.

18

     procedure Set_Exit_Status (Code in Exit_Status);

19

If the external execution environment supports returning an exit status from a program, then Set_Exit_Status sets Code as the status. Normal termination of a program returns as the exit status the value most recently set by Set_Exit_Status, or, if no such value has been set, then the value Success. If a program terminates abnormally, the status set by Set_Exit_Status is ignored, and an implementation−defined exit status value is set.

20

If the external execution environment does not support returning an exit value from a program, then Set_Exit_Status does nothing.
Implementation Permissions

21
An alternative declaration is allowed for package Command_Line if different functionality is appropriate for the external execution environment.

     NOTES

22

36  Argument_Count, Argument, and Command_Name correspond to the C language's argc, argv[n] (for n>0) and argv[0], respectively.