with Interfaces.C; use Interfaces.C; with Interfaces.C.Strings; use Interfaces.C.Strings; with Interfaces.C.Pointers; with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; package Command_Line_Arguments is type Argument_Array is array (ptrdiff_t range <>) of aliased chars_ptr; package Argument_Vector_Package is new Pointers ( Index => ptrdiff_t, Element => chars_ptr, Element_Array => Argument_Array, Default_Terminator => Null_Ptr ); subtype Argument_Count_Type is ptrdiff_t; subtype Argument_Vector_Type is Argument_Vector_Package.Pointer; function Get_Argument( Argv : in Argument_Vector_Type; Index : Argument_Count_Type ) return String; end Command_Line_Arguments;