Т100 - документация.

Введение.

Данная программа может использоваться как оболочка. Делалась в основном просто для тренировки в программировании на Си++ под Линукс.

Опции программы.

-o Перенаправить вывод в файл.
-f Читать ввод из файла.
-aПеренаправить вывод в файл (запись в конец).
-hello-off Не выводить приветствие.

Команды.

Извините, я пока не доделал сборщика документации. Пока так.

.quit
.getexternals
.newfile
.test
.initdaemons
.hello
.converttodos
.connect
.sleep
.gethostbyname
.getnamebyhost
.getnamesbynetmask
.proxy
.input
.output
.error
.exit
.fork
.set
.cd
.pwd
.dir
.portscanner
.print
.popen
.get
.intoout
.dumpfile
.ftp
.portfinder

.hello Специфическая команда. На даный момент просто расшифровывает файл /home/oleg/pusto и распаковывает его в /ram/oleg/. При завершении выводит "220\n"
.quit Специфическая команда. Упаковывает /ram/oleg/* и шифрует. Результат записывается в /home/oleg/pusto.
.getexternals .getexternals [-t{n}] <имя файла или директории>
Выводит дамп всех объявлений функций из файла. Первый параметр либо имя файла, либо "-t{n}", где {n} равно "1","2", или "3".
Без параметров. Простой дамп.
-t1Отсортированный дамп имён функций с укозанием строки.
-t2То же, что и -t1,только для всех файлов в директории, с дополнительным выводом - имя файла, где объявлена функция. (медленно)
-t3То же, что и -t2, включая субдиректории.
.newfile .newfile <имя модуля>
Создаёт новый модуль. В модуль входят два файла :
"include/t100_<имя модуля>.h"
"block_level2/t100_<имя модуля>.cpp"
Файл ".cpp" создаётся по шаблону из файла "newfile.std", который должен находиться в текущем каталоге.
.test Выполняет тестовую команду, записанную в конфигурационном файле. Команда берётся из параметра "TESTKOMAND".
.initdaemons Запускает всех доступных демонов. На данный момент это кодировщик и прокси-сервер. Кодировщик использует оригинальный алгоритм T100-Haos. Прокси-сервер может использоваться только для просмотра - запросов/ответов клиента/сервера.
.converttodos .converttodos <имя директории> <имя директории2>
Читает все файлы в директории (и субдиректориях) и заменяет конец строки \n (0Ah) на \r\n (0Dh 0Ah). Конечные файлы записываются в директорию <имя директории2>. Если эта директория не существует, то она создаётся автоматически.
.connect .connect <-n | -h> <имя хоста | ип хоста:порт> [<порт>]
Производит удалённое соединение и ответвляет два процесса. Один получает данные и выводит их в текущий вывод. Второй читает данные из текущего ввода и отправляет их хосту. .connect.quit Убить соединение.
.sleep .sleep <время в секундах>
Заставляет основной процесс программы "заснуть" на время.
.gethostbyname .gethostbyname <имя хоста>
Возвращает адрес хоста по его имени.
.getnamebyhost .getnamebyhost < IP >
Возвращает имя хоста по адресу.
.getnamesbynetmask .getnamesbynetmask < xxx.xxx.xxx >
Выводит имена хостов в этой сети.
.proxy .proxy <прокси-порт> <адрес хоста> <порт>
Создаёт тунель.
текущий_сервер:прокси-порт -- адрес_хоста:порт.
.input|.output|.error Один параметр задаёт имя файла. Команды перенаправляют ввод | вывод | ошибки в указанный файл. Если нет параметра, устанавливаются стандартные ввод,вывод или канал ошибок.
.exit Закрывает текущий ввод. Если он не был перенаправлен, это приводит к завершению программы.
.fork .fork <имя файла>
Разветвляет процесс и задаёт потомку читать ввод из указанного файла.
.set Установить переменную среды. Пока не используется.
.cd .cd <имя директории>
Устанавливает текущую директорию для программы.
.pwd Эквивалент юниксовской команды "pwd".
.dir .dir <имя директории>
Выводит список файлов в указанной или текущей директории.
.portscanner .portscanner < IP >
Сканирует указанный адрес на возможность подключения к портам. Если найден доступный порт, происходит задержка несколько секунд.
.print .print <строка>
Просто выводит указанную строку, добавляя конец строки.
.popen .popen <команда>
Выполняет указанную команду. Установив :
текущий_вывод -- ввод_команды
.get .get <имя переменной>
Пока используется для получения значения переменной (см. ".set").
.intoout Замыкает текущий ввод на вывод. После нее не могут следовать другие команды !
.dumpfile <имя файла>
Просто выводит содержимое указанного файла. Полезно совместно с ".popen".
.ftp <имя сервера>
Подключается к указанному серваку. Только после этой команды можно выполнять другие, которые начинаются на ".ftp.".
.portfinder < xxx.xxx.xxx > <порт>
Сканит сеть на доступность порта.