Server for Information Technologies Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер содержит море(!) аналитической информации CIT Forum CD-ROM

REX

НАЗВАНИЕ
rex - Протокол удаленного выполнения

СИНТАКСИС

	#include <rpcsvc/rex.h>

ОПИСАНИЕ
Сервер удаленного исполнения команд. Допускается указание рабочего каталога и параметров среды выполнения команды, а также переопределение стандартного ввода и вывода команды. Возможно осуществление интерактивного ввода-вывода для тех программ, которые запускаются с терминалов. Работает только с протоколом TCP.

Информация о RPC:
Код (номер) программы:

	 REXPROG
подпрограммы xdr:
	 int xdr_rex_start(xdrs, start);
	 XDR *xdrs;
	 struct rex_start *start;
	 int xdr_rex_result(xdrs, result);
	 XDR *xdrs;
	 struct rex_result *result;
	 int xdr_rex_ttymode(xdrs, mode);
	 XDR *xdrs;
	 struct rex_ttymode *mode;
	 int xdr_rex_ttysize(xdrs, size);
	 XDR *xdrs;
	 struct rex_ttysize *size;
процессы:
REXPROC_START
Принимает структуру rex_start, запускает исполнение команды и возвращает структуру rex_result.

REXPROC_WAIT
Аргументов не имеет, ожидает завершения выполнения команды, возвращает структуру rex_result.

REXPROC_MODES
Принимает структуру rex_ttymode и пересылает режимы работы терминала.

REXPROC_WINCH
Принимает структуру ttysize и пересылает информацию о размерах окна.
версии:
REXVERS_ORIG
Первоначальная версия
структуры:
	 struct B_sgttyb {
	 char bsg_ispeed; /* скорость ввода */
	 char bsg_ospeed; /* скорость вывода */
	 char bsg_erase; /* символ стирания */
	 char bsg_kill;  /* символ удаления */
	 short bsg_flags;
	 };
	 struct tchars {
	 char t_intrc;  /* прерывание */
	 char t_quitc;  /* выход */
	 char t_startc;  /* запуск вывода */
	 char t_stopc;  /* останов вывода */
	 char t_eofc;  /* конец файла */
	 char t_brkc;  /* разделитель ввода */
	 };
	 struct ltchars {
	 char t_suspc;  /* сигнал остановки
	        процесса */
	 char t_dsuspc;  /* отложенный сигнал
	        остановки процесса */
	 char t_rprntc;  /* повторный вывод строки */
	 char t_flushc;  /* вывод потоком (ключи) */
	 char t_werasc;  /* стирание слова */
	 char t_lnextc;  /* следующий символ */
	 };
	 
	 #define REX_INTERACTIVE 1 /* интерактивный режим */
	 struct rex_start {
	 char  **rst_cmd;  /* список команд и аргумен- 
	       тов */
	 char  *rst_host;  /* имя рабочего каталога
	       host'а */
	 char  *rst_fsname;  /* имя каталога файловой
	       системы */
	 char  *rst_dirwithin; /* каталог внутри файловой
	       системы */
	 char  **rst_env;  /* список параметров выполне- 
	       ния */
		 ushort rst_port0;  /* порт для stdin */
	 ushort rst_port1;  /* порт для stdin */
	 ushort rst_port2;  /* порт для stdin */
	 ulong rst_flags;  /* опции - см. #define выше */
	 };
	 struct rex_result {
	 int  rlt_stat;   /* целочисленный код состоя- 
	       ния */
	 char  *rlt_message;  /* строка сообщения */
	 };
	 struct rex_ttymode {
	 struct B_sgttyb basic; /* флаги для терминала в UNIX
	       версии Berkeley */
	 struct tchars more;  /* прерывание, удаление и
	       т.д. */
	 struct ltchars yetmore; /* специальные символы в
	       Berkeley */
	 ulong andmore;   /* режимы Berkeley */
	 };
	 struct ttysize {
	 int  ts_lines;   /* количество строк на экране
	       терминала */
	 int  ts_cols;   /* количество столбцов на экране
	       терминала */
	 };

СМ. ТАКЖЕ
rexd(8)

Comments: info@citmgu.ru
Designed by Andrey Novikov
Copyright © CIT
Обновлено: 13.03.2015