Руководство по Ada (Ada 2022)
A.15 Пакет Command_Line
Пакет Command_Line позволяет программе получить значения своих аргументов и установить код возвращаемого состояния выхода при нормальном завершении.
Статическая семантика
Библиотечный пакет Ada.Command_Line имеет следующее объявление:
package Ada.Command_Line
with Preelaborate, Nonblocking, Global => in out synchronized is
with Preelaborate, Nonblocking, Global => in out synchronized is
function Argument_Count return Natural;
function Argument (Number : in Positive) return String;
function Command_Name return String;
type Exit_Status is тип целого числа, определенный реализацией;
Success : constant Exit_Status;
Failure : constant Exit_Status;
Failure : constant Exit_Status;
procedure Set_Exit_Status (Code : in Exit_Status);
private
... -- не определено языком
end Ada.Command_Line;
... -- не определено языком
end Ada.Command_Line;
function Argument_Count return Natural;
Если внешняя среда выполнения поддерживает передачу аргументов в программу, то Argument_Count возвращает количество аргументов, переданных программе, вызывающей функцию. В противном случае возвращает 0. Значение «количество аргументов» определяется реализацией.
function Argument (Number : in Positive) return String;
Если внешняя среда выполнения поддерживает передачу аргументов в программу, то Argument возвращает значение, определенное реализацией, с нижней границей 1, соответствующей аргументу в относительной позиции Number. Если Number находится вне диапазона 1..Argument_Count, то возникает Constraint_Error.
function Command_Name return String;
Если внешняя среда выполнения поддерживает передачу аргументов в программу, то Command_Name возвращает значение, определенное реализацией, с нижней границей 1, соответствующей имени команды, вызвавшей программу; в противном случае Command_Name возвращает пустую строку.
type Exit_Status is тип целого числа, определенный реализацией;
Тип Exit_Status представляет собой диапазон значений кода выхода, поддерживаемых внешней средой выполнения. Константы Success и Failure соответствуют успешному и неуспешному завершению, соответственно.
procedure Set_Exit_Status (Code : in Exit_Status);
Если внешняя среда выполнения поддерживает возврат кода выхода из программы, то Set_Exit_Status устанавливает Code в качестве статуса. Нормальное завершение программы возвращает в качестве кода выхода значение, последнее установленное Set_Exit_Status, или, если такое значение не было установлено, значение Success. Если программа завершается аномально, то установленное Set_Exit_Status значение игнорируется, и устанавливается значение кода выхода, определенное реализацией.
Если внешняя среда выполнения не поддерживает возврат значения выхода из программы, то Set_Exit_Status ничего не делает.
Разрешения реализации
Разрешается альтернативное объявление пакета Command_Line, если для внешней среды выполнения подходит другая функциональность.
ПРИМЕЧАНИЕ Argument_Count, Argument и Command_Name соответствуют argc, argv[n] (для n>0) и argv[0] языка C, соответственно.