Выполнить команду на удаленном хосте
#include <unistd.h>int rcmd( char **ahost,unsigned short inport,const char *locuser,const char *remuser,const char *cmd,int *fd2p );int rcmd_af( char **ahost,unsigned short inport,const char *locuser,const char *remuser,const char *cmd,int *fd2p,int af );
<sys/socket.h>. Если af указан как AF_UNSPEC или PF_UNSPEC, интерпретация *ahost подчиняется разрешению базовых адресов, например DNS.libsocket
Функция rcmd() используется суперпользователем для выполнения команды cmd на удаленном компьютере с использованием схемы аутентификации на основе зарезервированных номеров портов. Функция rcmd() может обрабатывать только IPv4-адреса в качестве первого аргумента; rcmd_af() может обрабатывать и другие типы адресов. Сервер rshd (среди прочих) использует функции rcmd(), rresvport(), и ruserok().
Функции rcmd() и rcmd_af() ищут хост *ahost с помощью gethostbyname(), и возвращают -1 если указанный хост не существует. В противном случае, *ahost устанавливается в значение стандартного имени хоста, и устанавливается соединение с сервером, находящимся на интернет-порте inport.
Если соединение установлено успешно, сокет SOCK_STREAM в Интернет-домене возвращается вызывающей стороне и передается удаленной команде как стандартный ввод и стандартный вывод.
2) по этому каналу и примет байты в качестве номеров сигналов, которые будут перенаправлены в группу процессов команды. 2 удаленной команды) выполняется так же, как и стандартный вывод, и не предусмотрено никаких условий для отправки произвольных сигналов удаленному процессу (хоть и возможно "привлечь внимание" процесса, используя внеполосные данные). Корректный дескриптор сокета; либо -1 в случае возникновения ошибки (также выводится сообщение об ошибке в stderr).
Unix
gethostbyname(), iruserok(), iruserok_sa(), rresvport(), ruserok()
Предыдущий раздел: Описание API сетевой библиотеки