3.9. DOS: СВЯЗЬ С ОПЕРАЦИОННОЙ СИСТЕМОЙ

$func ARG s.Int = e.Arg;

$func GETENV e.VarName = e.Value;

$func TIME = e.String;

$func EXIT s.ReturnCode = ;


Эти функции служат для связи с операционной системой.

Аргументы функций должны удовлетворять следующим ограничениям. s.Int должно быть целым неотрицательным числом, e.VarName - цепочкой литер и слов, s.ReturnCode - целым числом из интервала от 0 до 255. Если хотя бы одно из этих условий не выполнено, функции выдают результат $error(Fname "Invalid argument"), где Fname - имя функции.


ARG выдает аргумент командной строки с номером s.Int. Если он отсутствует, выдается пустая строка.


GETENV извлекает из среды (в смысле MSDOS) значение переменной с именем e.VarName и выдает его.


TIME выдает текущую дату и время в виде объектного выражения вида

DD MMM YYYY HH:MM:SS.SS

где DD - день месяца, MMM сокращенное название месяца ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"), YYYY номер года, HH:MM:SS.SS - часы, минуты, секунды и сотые доли секунды. DD, YYYY, HH, MM, SS представлены в виде чисел, MMM - слово, все разделители между ними - символы-литеры ' ', ':' и '.'.


EXIT завершает выполнение программы, при этом устанавливается код завершения, равный s.ReturnCode. Если программа завершается обычным способом, т.е. вычисление вызова главной функции <Main> завершается, то код завершения зависит от результата, выданного функцией Main. Если этот результат - объектное выражение, то код завершения равен 0, если же результат имеет вид $error(Oe), код завершения равен 100.