АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

icmun - Интернет в облаке

Запустите icmun в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда icmun, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


icmake - Программа обслуживания (сделать) с помощью C-подобная грамматика

СИНТАКСИС


icmake [опции] источник [.im] [dest [.bim]] [- [аргументы]]

икмун бифайл

ОПИСАНИЕ


Икмаке(1) можно использовать как альтернативу сделать(1). В стандартном режиме работы он
вызывает следующие программы:

o ICM-PP для предварительной обработки файла icmake

o ICM-комп для байт-кода компиляции icmake s

o ICM-exec выполнить файл с байтовым кодом

Икмаке позволяет программистам использовать язык программирования (очень похожий на хорошо известный
C-язык программирования) для определения действий, которые участвуют в (сложной) программе
поддержание. Для этого, icmake предлагает различные специальные операторы, а также набор поддержки
функции, которые оказались полезными при обслуживании программ.

Программа икмун(1) можно использовать для дизассемблирования скомпилированного файла с байтовым кодом (.bim). Икмун
в основном используется для иллюстрации, обучения и отладки.

Традиционные make-утилиты перекомпилируют исходные тексты после изменения файлов заголовков. в
контекст C + + разработки программы это часто плохая идея, так как добавление нового участника в
class обычно не требует перекомпиляции исходных кодов класса. Чтобы справиться с классом
Зависимости аймбальд(1) может проверить КЛАССЫ файлы, которые можно использовать для определения зависимостей
среди классов. По умолчанию зависимости классов не интерпретируются. Обратитесь к ICMconf(7)
справочную страницу для получения дополнительной информации.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Икмаке использует следующие файлы и параметры:

o источник: icmake исходный файл скрипта (расширение по умолчанию: ).

o Dest: двоичный icmake файл скрипта (по умолчанию: `source'.bim, называемый `.bim файлом '
ниже).

o --: icmake разделитель аргументов разделяющий icmake аргументы из переданных аргументов
в файл .bimnl () арг: следующие аргументы -- передаются в файл .bim
как есть и доступны на список ARGV параметр, определенный как icmake
сценарий main второй параметр функции (см. ниже в разделе USER ОПРЕДЕЛЕНЫ
ФУНКЦИИ). Для некоторых опций (см. Ниже) -- разделитель не требуется.

Икмаке поддерживает различные параметры, описанные далее. В -h вариант отменяет все остальные
варианты, -a опция отменяет все другие опции, кроме -h. Из оставшихся действий
опции (-б, -с, -е, -я, -p и -t) может быть указан только один:

o -a
показать информацию о icmake, отменено -h;

o -b
прекращено: используйте вместо этого параметр -e;

o -c
домен icmake исходный файл компилируется, генерируя файл .bim;

o -e
выполнить icmake .bim файл, представленный как icmakeпервый аргумент файла. Любые дополнительные
аргументы передаются в файл .bim как есть, и -- не указывается;

o -F
имена файлов и флаги, а также обзор всех действий, которые должны выполняться
icmake отображаются в стандартном потоке вывода;

o -h
предоставить информацию об использовании и завершить icmake;

o -i
первый аргумент - это icmake исходный файл, двоичный файл по умолчанию
строится при необходимости. Любые дополнительные аргументы передаются в файл .bim.
как есть, и -- не указывается;

o -p
домен icmake исходный файл только предварительно обрабатывается, а предварительно обработанный файл записывается
в icmakeвторой аргумент файла (по умолчанию `source'.pim);

o -q
игнорируется, будет удалено в будущем icmake версия;

o -t
аргумент, следующий за -t это имя временного файла .bim, который удаляется
после icmakeзвонок. Когда . указывается как имя временного файла .bim
затем временный каталог по умолчанию, за которым следует icmakeидентификатор процесса, за которым следует
.бим используется.

После имени временного файла .bim следует имя icmake исходный сценарий
необходимо указать. Любые дополнительные аргументы передаются в файл .bim как есть, и
-- не указывается; После установки флага исполняемого файла исходного скрипта
(CHMOD +x скрипт) и снабдив его такой начальной строкой:

#! / usr / bin / icmake -t.

домен icmake скрипт может быть вызван напрямую:

скрипт arg1 arg2

в этом случае icmake скрипт сценарий выполняется, пока он получает
Аргументы скрипт arg1 arg2.

o -T
эта опция должна быть указана с именем каталога, который используется для хранения
временные файлы. Например, при составлении icmake скрипт, вывод icmakeАвтора
препроцессор - это временный файл, который удаляется при выходе. По умолчанию / Tmp используется,
если не / Tmp не является доступным для записи каталогом, и в этом случае текущий пользователь $ HOME
каталог используется. Неявные временные имена файлов всегда начинаются с идентификатора процесса
текущий icmake процесс.

o -v
дисплей icmakeномер версии и конец icmake, отменено -h

Икмун:

бифайл: двоичный icmake файл сценария.

ПРЕДПРОЦЕССОР ДИРЕКТИВЫ


Доступны следующие директивы препроцессора:

o комментарий:
стандарт C комментарий (все между /* и */), а также до конца строки (все
содержание строки после //) игнорируются.

o Запуск оболочки: первая строка icmake-скрипт может начинаться с #!дорожка, Где
путь определяет абсолютное расположение icmake программа. Сделав сценарий
исполняемый файл, его можно вызывать без явного вызова icmake.

Например, если первая строка (исполняемого) файла icmakefile 'icm' (без расширения)
содержит

#! / usr / bin / icmake -i

тогда ICM может быть выдан как команда, таким образом выполняя

/ usr / bin / icmake -i icm ...

В качестве альтернативы,

#! / usr / bin / icmake -t / tmp / icm

могут быть использованы, что приведет к выполнению

#! / usr / bin / icmake -t / tmp / icm icm ...

В этом случае двоичный файл удаляется при выходе.

o #включают "имя файла"
Файл имя файла включен в директиву

o #включают
Файл имя файла включен в расположение #включают директива; имя файла
ищется в каталогах, разделенных двоеточиями, указанных IM охрана окружающей среды
Переменная. Первое появление имя файла в каталогах, указанных IM
используется переменная окружения.

o #define идентификатор [определение]
Текст идентификатор будет заменен на определение. Определение может содержать
ссылки на уже определенные идентификаторы, используя $ {идентификатор} формат. Если
$ {идентификатор} не определено (пока), текст $ {идентификатор} буквально сохраняется.
Чтобы предотвратить бесконечную рекурсию, не более 100 $ {идентификатор} замены разрешены.

Определения продолжаются на следующей строке, если последний символ в строке
обратная косая черта (\). (что не входит в определение). Препроцессор
объединяет строки с двойными кавычками, а строки с двойными кавычками не могут охватывать несколько
линии. Множественные пробелы (за пределами строк с двойными кавычками) в определениях
сокращается до одного пустого места.

Определение, следующее за # определить идентификатор не обязателен. Если опущено,
макрос определен, поэтому его можно использовать в #if (n) def директивы (см. ниже), но они
не заменяются никаким текстом в icmake операторы кода.

o #ифдеф идентификатор
Если же линия индикатора идентификатор макрос был определен в следующем блоке кода (до совпадения #еще
or #endif директива была прочитана) компилируется побайтно. В противном случае блок кода
игнорируются.

o #ифндеф идентификатор
Если же линия индикатора идентификатор макрос был не определил следующий блок кода (до совпадения
#еще or #endif директива была обнаружена) компилируется побайтно. В противном случае блок
код игнорируется.

o #еще
Завершает #ифдеф и #ифндеф директива, отменяющая решение о приемке
следующий код. Только один #еще директива может быть связана с #if (n) def
директивы.

o #endif
Завершает блок препроцессора, начиная с совпадающего #ифдеф, #ифндеф or #еще
директива. В #endif каталог и его соответствие #if (n) def директива должна быть
указаны в том же файле.

o #ундеф идентификатор
Удалить идентификатор из набора определенных символов. Это не влияет на
спецификация любых ранее определенных символов, в которых идентификатор определение
был использован. Если идентификатор не определено, выдается предупреждение.

ДАННЫЕ ВИДЫ


Икмаке поддерживает эти типы данных:

o ASCII персонаж постоянная
Символьные константы ASCII состоят из одного символа, окруженного одинарным или двойным
цитаты. Одиночные символы (например, 'а') представляют самого персонажа. Стандарт
escape-последовательности (например, '\ n') поддерживаются и представляют собой их стандартные преобразованные
значение (например, '\ n' представляет значение ascii 10 (десятичное)). Нестандартный побег
последовательности (например, '\Икс') представляют собой символ ascii, следующий за escape-символом
(так '\Икс' равняется 'Икс'). Escape-последовательности, состоящие из трех восьмеричных цифр, представляют
символ ascii, соответствующий восьмеричному значению по модулю 256 (например, '\ 123').
Управляющие последовательности, состоящие из символа x, за которым следуют две шестнадцатеричные цифры, представляют
символ ascii, соответствующий шестнадцатеричному значению (например, '\ xa4').

o Int
Интегральные значения в диапазоне от -0x8000 через 0x7fff. Int константы могут быть
указаны как десятичные числа (начиная с цифр от 1 до 9), восьмеричные числа
(начиная с 0, за которым следует одна или несколько восьмеричных цифр) шестнадцатеричные числа
(начиная с 0x, за которым следует одна или несколько шестнадцатеричных цифр) или как ASCII
символьные константы.

o string
Текстовые переменные. Строковые константы разделяются двойными кавычками. Множественная строка
константы могут быть объединены, но одна строковая константа не может охватывать несколько
линии. Строковые константы, разделенные только пробелами (например, пробелы, символы новой строки,
comment) объединены и представляют собой одну строковую константу. Чтобы указать
конец строки в строковой константе используйте \n escape-последовательность.

Символьные константы ASCII, заключенные в двойные кавычки, также могут использоваться в
арифметические выражения, если один из операндов является Int. Единственный персонаж
строковая константа должен быть константой и не может быть string Переменная.

Аналогичным образом символьные константы ASCII, заключенные в одинарные кавычки, могут использоваться в
ситуации, когда ожидается строковый операнд.

o список
Структура данных, содержащая ряд индивидуально доступных string ценности. когда
список содержит элементы, его первый элемент обозначается индексом 0.

o аннулировать
Используется с определениями функций, чтобы указать, что функция не возвращает
значения.

Переменные могут быть определены как на глобальном уровне, так и на любом локальном уровне внутри
функции. При определении внутри функций стандарт C правила определения объема и видимости
применять. Например, локальные переменные могут использоваться только сами по себе или в более глубоко вложенных
блоков, их видимость маскируется в более глубоко вложенных блоках путем определения идентичного
именованная переменная внутри этих более глубоко вложенных блоков. Переменные строго типизированы, и
не может иметь типа аннулировать.

Переменные могут быть инициализированы, когда они определены. Инициализации - это выражения, которые
может использовать предварительно или определенные пользователем функции, постоянные значения и значения переменных, которые
виден в точке определения.

ПРЕДНАЗНАЧЕН КОНСТАНТЫ


Следующие константы предопределены icmake. Все постоянны Int ценности:

─────────────────────────────────
значение символа предназначено для
─────────────────────────────────
Список O_ALL 8
Список O_DIR 2
O_FILE 1 список создания
Список O_SUBDIR 4
─────────────────────────────────
ВЫКЛ 0 эхо
ВКЛ 1 эхо
─────────────────────────────────
Системные вызовы P_CHECK 0
Системные вызовы P_NOCHECK 1
─────────────────────────────────
S_IEXEC 32 стат.
S_IFCHR 1 стат
S_IFDIR 2 стат.
S_IFREG 4 стат.
S_IREAD 8 стат
S_IWRITE 16 стат
─────────────────────────────────

Следующие константы зависят от архитектуры:

───────────────────────────────────────────────────── ────────────
символ 1, если он определен на платформе, в противном случае 0
───────────────────────────────────────────────────── ────────────
unix Unix, обычно с компилятором GNU gcc
В качестве альтернативы может быть доступна UNIX
linux x86 под управлением Linux (обычно с gcc)
В качестве альтернативы может быть доступен LINUX
M_SYSV, M_UNIX x86 под управлением SCO / Unix
_POSIX _SOURCE Unix с компилятором, совместимым с Posix
__hpux HP-UX, с собственным компилятором HP
───────────────────────────────────────────────────── ────────────

ОПЕРАТОРЫ


типизированный операнд (ы):

Все C доступны операторы (кроме операторов указателя, как icmake не поддерживает
указатели). Они действуют как их C-язык программирования аналогов.

строковый операнд (ы):

Что касается string переменные типа и / или константы доступны следующие операторы (a и b
представлять string переменные или константы):

o a + b: возвращает новый string значение, содержащее конкатенацию string ценности a
и b, Обратите внимание, что string константы могут быть объединены напрямую (без использования +
оператор), например, следующие две строки определяют строку "Привет Мир":

"Привет мир"
"привет" + "мир"

o a += b: a должен быть string переменная, к которой string переменная или значение b is
прилагается.

o сравнение строк: операторы == != <= >= < > != и == может применяться к string
значения или переменные, возвращающие 1, если сравнение прошло успешно, в противном случае - 0.
При сравнении учитывается регистр и следует порядок или символы, как определено.
в ASCII набор символов.

o !a: логическое ! (not) оператор возвращает 1, если string a пусто, иначе 0 равно
вернулся.

o a младший b, a более новый b: возвращает 1, если файл a старше, чем файл b. Например,
"source.cc" более новый "source.o". Файлы a и b не должны существовать: если не существует обоих
существует 0; если b не существует, возвращается 1; если a не существует 0 есть
вернулся; если они одинаково старые, возвращается 0. (в существуют() предопределенная функция
(см. ниже, раздел ПРЕДНАЗНАЧЕН ФУНКЦИИ) можно использовать для явной проверки того,
Файл существует).

o a старший b: превращается в 1, если файл a старше файла b. Например, "libprog.a" старший
"source.o". Файлы a и b не должны существовать: если оба не существуют, 0 - это
вернулся; если a не существует, возвращается 1; если b не существует 0 возвращается; если
они одинаково старые 0 возвращается.

o []: оператор индекса извлекает символ из строковой переменной или константы: it
возвращает строку как Rvalue. Следовательно, следующий оператор компилируется нормально:

// предполагаем, что str1 и str2 - строки
str1 = str2 [3];

но следующий оператор не компилируется:

str2 [3] = "а";

Если указано недопустимое значение индекса, возвращается пустая строка.

o Оператор `обратная кавычка` (строка cmd`)
Строка, помещенная между двумя обратными кавычками, исполняется открывать(3) функция. В
стандартный вывод, созданный командой, которая хранится в строковом аргументе:
возвращается в виде списка. Пустой список означает, что команда не может быть выполнена.
Команда, которая могла быть выполнена, но не дала никаких результатов, возвращает список
содержащий один пустой элемент. Стандартный вывод потока ошибок команды не
собираются оператором обратного апострофа. Однако стандартное перенаправление оболочки может быть
используется для сбора стандартного вывода потока ошибок. Пример:

printf (`" ЛС "); // печатает элементы в
// текущий каталог

Предопределенная функция eval (строка команда) ведет себя точно так же, как обратная кавычка
оператор: это синонимы.

списковый операнд (ы):

Что касается список Тип переменных и / или значений доступны следующие операторы:

o a + b: возвращает новый список значение, содержащее конкатенацию список ценности a и
b. Это не операция установки: если элемент появляется как в a и в b, они будут
появляются дважды в итоговом списке (добавление множества обеспечивается встроенным
функция список).

o a - b: возвращает новый список значение, содержащее элементы в a что нет
in b. Это is операция набора-разности: возвращаемый список содержит все элементы
in a которые не являются элементами b.

o a += b: элементы в b добавляются к элементам в a, который должен быть список
Переменная. Это не установленная операция.

o a -= b: элементы в b удалены из элементов в a, который должен быть список
Переменная. Этот is установленная операция: все элементы a которые найдены в b Он
удалено из a.

o перечислить сравнения на равенство: операторы != и == может применяться к список ценности или
переменные. Оператор == возвращает 1, если оба списка поэлементно идентичны
элементов, в противном случае возвращается 0. Оператор != отменяет результат ==.

o !a: логическое ! оператор возвращает 1, если список a пусто, иначе 0 равно
вернулся.

o []: оператор индекса извлекает элемент списка из переменной списка: возвращает
строка как Rvalue. Следовательно, следующий оператор компилируется нормально:

// предполагаем, что lst - это список, str - это строка
стр = lst [3];

но следующий оператор не компилируется:

lst [3] = str;

Если указано недопустимое значение индекса, возвращается пустая строка.

Кастинг:

Приведение типов может выполняться с использованием стандартного C оператор приведения для приведения:

o Строки в целые числа и наоборот ((int) "123", (строка) 55)

o Строки в списки (список LST = (список) "привет")

ПОТОК КОНТРОЛЬ


Икмаке предлагает следующее подмножество Cзаявления. Их можно использовать как в C
язык программирования.

o выражение ;
Оператор простого выражения;

o Составной оператор
Переменные любого типа могут быть определены и инициализированы где угодно внутри любого соединения.
утверждение. В видимость переменной начинается с точки ее определения.

o if (состояние) заявление
Внутри условия может быть определена и инициализирована переменная. Например,

если (строка str = getText ())
процесс (str);

В этом примере процесс не вызывается, если getText () возвращает пустую строку. В
переменная ул не существует ни до, ни после if заявление.

o if (состояние) заявление еще заявление
Как и в предыдущем заявлении, внутри условия может быть определена переменная и
инициализирован.

o для (в этом; состояние; приращение) заявление
Переменные (одного типа) могут быть инициализированы (и опционально определены) в
инициализации раздел. инициализации, состояние и увеличить разделы могут оставаться пустыми. В
пустой раздел условий интерпретируется как `всегда правда.

o в то время как (состояние) заявление
Внутри условия может быть определена и инициализирована переменная.
Дополнительный do ... пока() выписка недоступна. Обратите внимание, что определение
переменная с использованием выражения инициализации означает, что инициализация
выражение выполняется на каждой итерации в то время как утверждение. Итак, следующие
Оператор никогда не закончится и отобразит бесконечный поток значений 10:

в то время как (int x = 10)
printf (x--, "\ п");

o вернуться;качества возвращают выражение;
одноцветный возвращают заявления могут использоваться в аннулировать функции и возвращают выражение
операторы используются в других типах функций. Функция main имеет тип возврата
аннулировать и так в main только простой возвращают заявления могут быть использованы. По умолчанию icmake
значение выхода скрипта равно 0. Используйте встроенную функцию выход (см. ниже), чтобы указать
любое другое значение выхода.

Be посоветовал: поведение непустых функций, не возвращающих значения, не определено.

o перерыв
Листья для и в то время как заявления, отменяющие условие утверждения.

o продолжать
Переходит к следующей итерации для or в то время как заявление.

o выход (выражение)
Завершает выполнение icmake-скрипт. В выражение должен оценивать Int
value, которое становится значением выхода скрипта.

ПРЕДНАЗНАЧЕН ФУНКЦИИ


Икмаке предлагает следующие предопределенные функции, которые можно использовать в любом месте icmake
скрипты. Следующий обзор упорядочен в алфавитном порядке по названиям функций.

o аннулировать arghead (строка h)
Вспомогательная функция exec () (см. также ниже на exec ()): определяет `заголовок аргумента ',
использоваться с exec (). По умолчанию заголовок аргумента - это пустая строка.

o аннулировать аргумент (нить t)
Вспомогательная функция exec () (см. также ниже на exec ()): определяет `хвост аргумента ',
использоваться с exec (). По умолчанию «хвост аргумента» - это пустая строка.

o Int ascii (строка s)
Возвращает первый символ из s как int; например, ascii ("A") возвращает 65;

o string ascii (int i)
Returns i в виде строки, например, ASCII(65) возвращает строку "А";

o string change_base (строка файл, string новая база)
Изменяет базовое имя файл, возвращает измененное имя. Например,
change_base ("/ путь / demo.im", "вне") Возвращает "/path/out.im";

o string change_ext (строка файл, string новыйэкст)
Изменяет расширение файл, возвращает измененное имя. Например,
rss_changeExt ("source.cc", "о") Возвращает "source.o";

o string change_path (строка файл, string новый путь)
Изменяет спецификацию пути файл, возвращает измененное имя. Например,
change_path ("tmp / двоичный", "/ USR / бен") Возвращает "/ usr / bin / двоичный", Обратите внимание, что
/-сепаратор вставляется при необходимости.

o string chdir (строка новый каталог)
Изменяет рабочий каталог скрипта, возвращает предыдущий каталог как абсолютный
дорожка.

Используйте chdir (".") чтобы получить текущий рабочий каталог, chdir ("") может быть использован для
получить рабочий каталог при запуске (эта функция была нарушена в выпусках
раньше 7.00, но сейчас работает). Функция завершает
icmake-скрипт, если указан новый каталог не существует.

o string chdir (int проверка, string новый каталог)
Те же функции, что и у предыдущей функции, но с указанием контроль as
П_НОЧЕК. функция не завершает скрипт. Скорее, он вернет
текущий рабочий каталог скрипта.

o cmdhead (строка h)
Вспомогательная функция exec () (см. также ниже на exec ()): Определяет `командную строку ', чтобы
использоваться с exec (). По умолчанию, заголовок команды - это пустая строка.

o cmdtail (строка t)
Вспомогательная функция exec () (см. также ниже на exec ()): Определяет `командный хвост ', чтобы
использоваться с exec (). По умолчанию, "хвост команды" - это пустая строка.

o эхо (число вариант)
Управляет отображением вызываемых программ (и их аргументов), укажите OFF если повторять
не запрашивается. По умолчанию эхо (ВКЛ) используется.

o string элемент (int индекс, список (или нить) вар)
Действует аналогично оператору индекса: ссылка на индекс ([]) оператор в
. ОПЕРАТОРЫ.

o список eval (строка ул)
Эта функция действует аналогично оператору обратного апострофа. Пример с
оператор обратного апострофа также мог быть записан так:

printf (eval ("ls")); // печатает элементы в текущем
// каталог

o exec (строка CMD, ...)
Выполняет команду с аргументами. Перед каждым аргументом будет стоять префикс arghead ()Автора
аргумент и постфиксация аргумент ()аргумент. Обратите внимание, что пробелы не вставляются
между arghead ()содержание, собственно аргумент и аргумент ()аргумент. Все
измененные таким образом аргументы объединяются, на этот раз разделенные одиночными пробелами, и
тогда cmdhead ()содержимое вставляется между командой и первым аргументом
(с обеих сторон разделены одиночными пробелами) и cmdtail ()содержание добавлено
к аргументам (опять же, через один пробел). PATH ищется, чтобы найти
CMD. 0 возвращается.

o exec (число чеккмд, string CMD, ...)
Те же функции, что и у предыдущей функции, но с указанием контроль as
НЕ_ПРОВЕРЕНО функция не завершает скрипт. Скорее, он вернет
называется статусом выхода команды, или 0x7f00 если команда не найдена.

o выполнить (строка CMD, string команда, string аргхд, ..., string аргтл, string командная строка)
Такой же как exec (), но должны быть указаны голова / хвост команды и аргумент голова / хвост.

Фактически выполненная команда начинается с CMD, с последующим cmdhd. Далее идет серия
аргументов, каждый из которых заключен в ага и аргумент. Команда заканчивается на
cmdtl. 0 возвращается

o выполнить (int проверка, string CMD, string команда, string аргхд, ..., string аргтл,
string командная строка)
Те же функции, что и у предыдущей функции, но с указанием контроль as
НЕ_ПРОВЕРЕНО функция не завершает скрипт. Скорее, он вернет
называется статусом выхода команды, или 0x7f00 если команда не найдена.

o Int существует (строка файл)
Возвращает ненулевое значение, если файл существует, в противном случае возвращается 0.

o список fgets (строка файл, список компенсировать)
ПРИМЕЧАНИЕ: in icmake версия 8.00.00 прототип этой функции был изменен с
список fgets (строка файл, Int компенсировать) в список fgets (строка файл, список компенсировать).

Следующая строка находится по смещению, содержащемуся в смещение читается из файл. Пройти
пустой список для fgets читать файл с самого начала.

Он возвращает список, содержащий в качестве первого элемента содержимое прочитанной строки.
(без \n терминатор строки), в качестве второго элемента терминатор строки `\n"
(если встречается), а в качестве третьего элемента строка OK если линия была успешно
читать, FAIL если чтение из файла не удалось. При чтении в EOF пустой список
вернулся. Возвращенный список может содержать дополнительные элементы, которые внутри
используется fgets при чтении следующей строки.

Чтобы прочитать несколько строк, начните с передачи пустого списка как получает Второй аргумент.
Чтобы прочитать последующие строки, передайте ранее возвращенный список в Fgets's второй
аргумент.

Вот пример, показывающий, как читать полный файл:

список ret;
в то время как (1)
{
ret = fgets ("имя файла", ret);
если (! ret)
перерыва;
процесс (ret [0], ret [1]);
}

o Int fprintf (строка имя файла, ...)
Добавляет все аргументы (разделенные запятыми) в файл имя файла. Возвращает количество
напечатанные аргументы.

o Int fprintf (строка имя файла, string формат, ...)
Добавляет все аргументы (разделенные запятыми) в файл имя файла. Возвращает количество
напечатанные аргументы.

If формат содержит заполнители% 1 ..% n вывод отформатирован (см. также
стрформат). Обратите внимание, что в этом случае подсчет аргументов (также) начинается за пределами
строка формата: первый аргумент, следующий за формат упоминается как %1.

o string get_base (строка файл)
Возвращает базовое имя файл. Базовое имя - это файл без префикса пути
и без его расширения. Расширение - это вся информация, начиная с последнего
точка в имени файла. Если конечная точка не найдена, имя файла является базовым именем.
Например, базовое имя аб равняется a, базовое имя abc равняется аб, база
Имя а / б / с равняется c.

o string getch ()
Возвращает следующую нажатую клавишу в виде строки (нажатие Enter не требуется).

o string get_dext (строка файл)
Возвращает расширение файл, включая разделительную точку. Расширение все
информация, начинающаяся с последней точки в имени файла.

Если конечная точка не найдена, возвращается пустая строка.

o список getenv (строка окружение)
Возвращает значение переменной окружения. окружение в списке, содержащем два элемента:

первый элемент указывает, была ли определена переменная среды (значение
"1") или нет (значение "0");
второй элемент указывает значение переменной окружения.

Переменные окружающей среды имеют вид переменная = значение, и если определен список
второй элемент содержит ценностное . Если значение пусто, переменная определена, но
не имеет связанного с ним текста.

o string get_ext (строка файл)
Возвращает расширение файл, кроме разделительной точки. Расширение все
информация, начинающаяся с последней точки в имени файла.

Если конечная точка не найдена, возвращается пустая строка.

o Int getpid ()
Возвращает идентификатор процесса интерпретатора байтового кода icmake. ICM-exec.

o string получает ()
Возвращает следующую строку, прочитанную с клавиатуры, как string. Строка введена на
клавиатура должна заканчиваться клавишей `Enter ', которая не сохраняется в возвращаемом
строка.

o string get_path (строка файл)
Возвращает префикс пути для файл. Префикс пути - это вся информация до (и
включая) последний разделитель каталогов (который, в зависимости от рабочего
система, прямая или обратная косая черта).

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

o Int listfind (список лст, string ул)
Возвращает первый индекс в LST где строка ул найдено, или -1, если LST не
содержать ул.

o Int listlen (список l)
Возвращает количество элементов в список.

o список listunion (список LHS, список шк)
Возвращает список, содержащий объединение элементов в л.ш. и шк.

o список listunion (список лст, string ул)
Возвращает список, содержащий объединение элементов в LST и ул.

o список makelist (строка маска)
Возвращает список всех подходящих файлов маска. Например, список макетов ("*. c") возвращает список
содержащий все файлы, оканчивающиеся на .c.

o список makelist (тип, string маска)
То же, что и предыдущая функция, но тип элементов каталога может быть
указано в качестве первого аргумента:

значение символа
IS_ALL получить все записи каталога
IS_DIR получить все каталоги, в т.ч. и ..
IS_FILE получить список файлов
IS_SUBDIR получить все подкаталоги

Обратите внимание, что шаблон * не будет соответствовать скрытым записям в операционных системах типа Unix.
системы. Использовать .* для этого.

o список makelist (строка маска, новее, string сравнить файл)
Возвращает список всех файлов, соответствующих маске, которые новее, чем указано
сравнить файл. Оператор младший может быть использован вместо более новый, Обратите внимание, что более новый и
младший являются операторами, а не строками.

o список список макетов ([int = IS_FILE,] string маска, новее, string сравнить файл)
То же, что и предыдущая функция, но напишите может быть указано как в список makelist (тип,
string маска).

o makelist (строка маска, старшая, string сравнить файл)
См. Выше; возвращает список файлов, которые старше, чем файл сравнения.

o makelist (тип, string маска, старшая, string сравнить файл)
То же, что и предыдущая функция, но напишите может быть указано как в список makelist (тип,
string маска).

o Int printf (...)
Показывает на экране все (разделенные запятыми) аргументы (т. Е. Стандартный поток вывода).
Возвращает количество напечатанных аргументов.

o Int printf (строка формат, ...)
Показывает на экране все (разделенные запятыми) аргументы (т. Е. Стандартный поток вывода).
Возвращает количество напечатанных аргументов ( формат строка считается одним аргументом).

If формат содержит заполнители% 1 ..% n вывод отформатирован (см. также
стрформат).

o Int putenv (строка окружение)
Добавляет окружение к текущему (icmake) environment Используйте формат: «VAR = значение».
Возвращает 0.

o string изменить размер (строка ул, Int новая длина) Возвращает копию строки ул, размер изменен на
новая длина символы. Если новая длина отрицательно, то возвращается пустая строка,
if новая длина превышает ул. длина, то инициализируются вновь добавленные символы
на пустые места.

o Int sizeof (список l)
Устарело: использовать листлен.

o Int sizeoflist (список l)
Устарело: использовать листлен.

o список stat (строка запись)
Returns состояние(2) информация о записи в справочнике запись в виде списка. Возвращенный список
имеет два элемента: элемент 0 - это атрибут ценностное , элемент 1 содержит размер
файл.

Атрибуты возвращаются как битовые флаги, состоящие из следующих предопределенных
константы:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

Смотрите пост в состояние(2) справочная страница для значений этих констант.

o список stat (проверка, string запись)
То же, что и предыдущая функция, но с указанием контроль as П_НОЧЕК функции
не прерывает сценарий. Скорее возвращается состояние(2) возвращаемое значение.

o Int strchr (строка ул, string символы)
Возвращает первый индекс в ул где любой из персонажей в символы найдено, или -1
if ул не содержит ни одного из символов в символы.

o Int strlen (строка ул)
Возвращает количество символов в ул (не считая финального 0).

o Int strfind (строка стог сена string иголка)
Индекс возврата в стог сена в котором игла найдено, или -1, если игла не содержится
in стог сена.
Эта функция законопроект под названием strstr () in версии до 7.00.

o Int strformat (строка формат,...)
Возвращает отформатированную строку с использованием заполнителей% 1 ..% 2 для адресации аргументов.
следующий формат.
Пример:

void main ()
{
int я = 10;
интервал j = 20;
строка s1;
строка s2;
// традиционный подход:
s1 = (строка) i + "" + (строка) j + "" + (строка) i;
// используя strformat:
s2 = strformat ("% 1% 2% 1", i, j);
printf ("s1 =% 1, s2 =% 2 \ n", s1, s2);
}

o string strlwr (строка s)
Возвращает копию строчной буквы s.

o список strtok (строка ул, string разделители)
Возвращает список, содержащий все подстроки ул разделены одним или несколькими
(последовательные) символы в сепараторы. Например, strtok ("привет icmake's + world ", " + ")
возвращает список, содержащий три строки "Привет", "icmake's"качества "Мир".

o string Strupr (строка s)
Возвращает дубликат в верхнем регистре s.

o string substr (строка Текст, Int компенсировать, Int считать)
Возвращает подстроку из текст, Начиная с смещение, состоящий из считать символы. Если
смещение превышает (или равен) размеру строки, или если считать <= 0, то пустая строка
возвращается. Если смещение меньше 0, то используется 0.

o Int система (строка команда)
Выполняет команду. Возвращаемое значение указывает значение выхода выполненной команды. В
string команду может содержать символы перенаправления и / или конвейера.

o Int система (int проверка, string команда)
Те же функции, что и у предыдущей функции, но с указанием контроль as
НЕ_ПРОВЕРЕНО функция не завершает скрипт. Скорее, он вернет
называется статусом выхода команды, или 0x7f00 если команда не найдена.

o string обрезать (строка s)
Возвращает копию s без начальных и конечных пробелов.

o string trimleft (строка ул)
Возвращает копию s без начальных пробелов.

o string обрезать (строка s)
Возвращает копию s без конечных пробелов.

USER ОПРЕДЕЛЕНЫ ФУНКЦИИ


аннулировать main

Икмаке скрипты должны быть предоставлены с пользовательской функцией main, Функция main и
три необязательных параметра, которые можно не указывать в последнем (окружение) к первому
(ARGC), как в C. Его полный прототип (примечание: аннулировать тип возврата):

void main (int argc, list argv, list envp)

In Основной (),

o ARGC представляет количество элементов в ARGV;

o ARGV содержит аргументы, причем элемент 0 равен имени .bim
файл;

o окружение содержит переменные "окружения". Функция листлен может быть использован для
определить количество его элементов. Элементы в окружение иметь форму
переменная = значение. В качестве альтернативы функция GETENV может использоваться для получения
конкретная переменная среды немедленно. Пример:

void main (int argc, list argv)
{
список для компиляции;
внутренний идентификатор;

если (argc == 1)
использование (элемент (0, argv));

если (toCompile = altered ("*. cc"))
{
for (idx = длина (toCompile); idx--;)
компилировать (элемент (idx, toCompile));

если (getenv ("dryrun") [0] == "0")
связывание (элемент (2, argv));
}
}

Инициализировав все глобальные переменные в порядке их определений main называется
icmakeсистема поддержки во время выполнения для выполнения дополнительных задач.

Дополнительно определенный пользователь Функции

Могут быть определены дополнительные функции. После определения эти функции могут быть вызваны. Вперед
ссылки на переменные или функции не поддерживаются, но вызываются рекурсивно
функции есть. Поскольку объявления функций не поддерживаются, косвенная рекурсия не поддерживается.
поддерживаются тоже.

Пользовательские функции должны иметь следующие элементы:

o Тип возвращаемого значения функции, который должен быть одним из пустота, инт, string or список, Там
не является типом по умолчанию.

o Имя функции, например, компилировать.

o Список параметров, содержащий ноль или более параметров, разделенных запятыми. Параметры
сами состоят из имени типа (инт, stringили список) с последующим
идентификатор параметра. Например, (нить Outfile string источник).

o А тело в окружении пары фигурных скобок ({ и }).

Тела функций могут содержать (необязательно инициализированные) определения переменных. Переменная
определения начинаются с имени типа, за которым следует одна или несколько запятых (необязательно
инициализированы) идентификаторы переменных. Если переменная не инициализирована явно, она
инициализируется по умолчанию. По умолчанию Int переменная инициализируется значением 0, a string is
инициализируется пустой строкой ("") И список инициализируется списком из нулевых элементов.

Помимо определений переменных, тела могут содержать ноль или более операторов (см.
. ПОТОК КОНТРОЛЬ). Обратите внимание, что переменные могут быть определены (и, возможно, инициализированы)
где угодно внутри функций, а также в если, для и в то время как заявления.

Поведение icmake-скрипты с использованием непустых функций, которые не возвращают значения, не
определены.

Используйте icmun онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    Pharser
    Pharser
    Phaser - это быстрый, бесплатный и увлекательный
    исходный игровой фреймворк HTML5, который предлагает
    WebGL и рендеринг Canvas через
    настольные и мобильные веб-браузеры. Игры
    может быть со ...
    Скачать Фазер
  • 2
    VASSAL Двигатель
    VASSAL Двигатель
    VASSAL - игровой движок для создания
    электронные версии традиционной доски
    и карточные игры. Он обеспечивает поддержку
    рендеринг и взаимодействие игровых элементов,
    и ...
    Скачать движок VASSAL
  • 3
    OpenPDF - форк iText
    OpenPDF - форк iText
    OpenPDF — это библиотека Java для создания
    и редактирование PDF-файлов с помощью LGPL и
    Лицензия с открытым исходным кодом MPL. OpenPDF – это
    LGPL/MPL преемник iText с открытым исходным кодом,
    и ...
    Скачать OpenPDF — форк iText
  • 4
    SAGA GIS
    SAGA GIS
    САГА - Автоматизированная система
    Геонаучный анализ - это географический
    Программное обеспечение информационной системы (ГИС) с
    огромные возможности для геоданных
    обработка и анализ ...
    Скачать ГИС САГА
  • 5
    Панель инструментов для Java / JTOpen
    Панель инструментов для Java / JTOpen
    IBM Toolbox for Java / JTOpen — это
    библиотека классов Java, поддерживающая
    клиент/сервер и интернет-программирование
    моделей в систему под управлением OS/400,
    i5/ОС, о...
    Скачать набор инструментов для Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (или D3 для документов, управляемых данными)
    это библиотека JavaScript, которая позволяет вам
    для создания динамических интерактивных данных
    визуализации в веб-браузерах. С D3
    вы...
    Скачать D3.js
  • Больше »

Команды Linux

Ad