Четвертый BORLAND С++ и его окружение

Операции в команде


В дополнение к операциям переназначения <, > и >>, утилита

MAKE добавляет операции << и &&. Эти операции для создания подаваемых на вход команды данных создают в оперативном порядке файл.

Операция << создает временный файл и переназначает поток стандартного ввода команды таким образом, что он поступает из созданного файла. Если у вас имеется программа, которая допускает ввод

данных из потока stdin, то команда:

MYPROG <<!

Это лишь тест

!

будет создавать временный файл, содержащий строку "Это лишь тест

\n", переопределяя ее как единственный поток входной информации

для программы myрrog. Восклицательный знак (!) представляет собой

в данном примере разделитель; в качестве разделителя для этого

файла можно использовать любой символ за исключением символов #

или \. Первая строка, начальным символом которой является символ



разделителя, завершает файл. Остальная часть строки, следующая за

символом разделителя (в данном примере, восклицательным знаком)

считается часть предшествующей команды.

Операция && аналогична операции <<. Он создает временный

файл, но вместо того, чтобы сделать этот файл стандартным потоком

ввода для указанной команды, операция && заменяется именем временного файла. Это оказывается полезным в том случае, если вы хотите, чтобы утилита MAKE создала файл, который должен быть использован в качестве источника входных данных команды. В

приведенном ниже примере показывается, как создать "файл подсказки" для утилиты TLINK.

MYPROG.EXE: $(MYOBJS)

tlink /c @&&!

COS $(MYOBJS)

$*

$*

$(MYLIBS) EMU.LIB MATHS.LIB CS.LIB

Заметьте, что макрокоманда (которая обозначается с помощью

знака $) расширяется при создании файла. $* заменяется именем

создаваемого файла без расширения, а $(MYOBJS) и $(MYLIBS) заме-

няются значениями макрокоманд MYOBJS и MYLIBS. Таким образом, для

TLINK файл будет выглядеть следующим образом:

COS a.obj b.obj c.obj d.obj

MYPROG

MYPROG

w.lib x.lib y.lib z.lib EMU.LIB MATHS.LIB CS.LIB

Если не используется параметр командной строки -K, то все

временные файлы удаляются. Параметром -K следует пользоваться для

"отладки" временных файлов, если возникает впечатление, что эти

файлы работают неверно.



Содержание раздела