Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.sao.ru/hq/vch/Publications/Russ/html/Diss/node60.html
Дата изменения: Unknown
Дата индексирования: Sat Sep 11 21:41:55 2010
Кодировка: koi8-r
Описание FTP библиотеки. next up previous contents
Next: Пример пользовательской программы Up: Приложения Previous: Приложения

  
Описание FTP библиотеки.

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

FILE * FtFullOpen (char *filename, char *mode)

возвращает указатель на структуру типа FILE (аналогично обычному open());
{\bigs filename} - символьная строка, содержащая четыре поля, разделенных двоеточием:

{\bigs ''host:user:password:file''},        где:

Если {\bigs filename} соодержит одиночный символ "-", то в качестве открытого файла используется стандартный ввод stdin. В случае неудачного выполнения функции возвращается нулевое значение. Kод ошибки errno можно получить стандартным системным запросом.
2.
Интегрированная функция закрытия файла на удаленном компьютере

STATUS FtFullClose (FILE *)

завершает операции по работе с файлом, открытым по FtFullOpen и разрывает связь. Эта функция, а также другие типа STATUS, возвращает численное значение трехзначного статуса выполнения FTP запроса из списка положительных ответов согласно стандарта RFC640 и RFC959, или отрицательное значение при ошибках.

Функции FtFullOpen и FtFullClose позволяют открыть файл на любом компьютере в сети (в том числе и на локальном, если указать его имя) и оперировать с ним с помощью стандартных функций чтения и записи в файл: {\bigs read(),write(),
getchar(),putchar()} и т.п. Следующая группа функций более низкого уровня, они позволяют последовательно выполнить операции соединения, регистрации на удаленном компьютере и получить доступ к нужным каталогам на диске.

3.
STATUS FtConnect (FTP **ftp, char *hostname) возвращает положительный статус в случае успешного соединения с удаленным компьютером hostname и отрицательный в противном случае.

Для выполнения этой функции и дальнейшей работы с удаленным компьютером требуется указать адрес указателя на структуру типа FTP:

typedef int STATUS;
typedef struct
{
int sock;    /* номер FTP порта */
FILE *data;    /* файл данных "привязанный" к FTP - каналу */
char mode;    /* тип передаваемых данных "A"- ascii или "I" - binary */
int errno;    /* код ошибки */
int ch;    /* номер FTP канала */
STATUS (*func)();    /* статус завершения операции с каналом */
STATUS (*debug)();    /* статус завершения отладочной функции */
} FTP;

4.
STATUS FtLogin (FTP **ftp, char *user, char *passwd, char *account) - интегрированная функция логирования на удаленном компьютере использует для своего выполнения три встроенные функции:

STATUS FtUser (FTP *ftp,char *username) - посылка имени пользователя usernsme,

STATUS FtPassword (FTP *ftp,char *password) - его пароля passwd и

STATUS FtAccount (FTP *ftp,char *account) - регистрационного номера.

Эти функции, естественно, можно использовать и по отдельности, все они возвращают положительное значение статуса при правильном завершении операций. Следует отметить, что большинство операционных систем не требует account, и вместо адреса этой строки нужно поставить NULL. Этот параметр введен для совместимости с прочими сетями. Определить необходимость введения account можно по результату выполнения функции FtUser, которая возвращает 332, если account нужен или 331, если нет. При ошибках возвращается отрицательное значение. Возвращаемое значение 230означает, что указанного зарегистрированного пользователя в системе нет, однако соединение не разорвано и можно сделать попытку с другим именем.

5.
Функция {\bigs char * FtPwd (FTP *ftp)} возвращает указатель на строку с именем текущего каталога на удаленном компьютере. Длина строки ограничена 255 байтами.

6.
Функция {\bigs STATUS FtChdir (FTP *ftp,char *directory)} позволяет перейти в указанный каталог {\bigs directory}.

7.
Функция STATUS FtMkdir (FTP *ftp,char *directory) создает новый каталог.

8.
Функция STATUS FtDir (FTP *ftp,char *outfile) записывает широкий

листинг текущего каталога удаленного компьютера в файл с именем outfile на местном компьютере. Например, если *outfile == "/dev/tty", то каталог распечатается на терминале.

9.
Функция STATUS FtDirFull (FTP *ftp,char *pater,char *outfile) аналогична предыдущей, но выдает список файлов в соответствии с образцом pater.

10.
Функция STATUS FtBye (FTP *ftp) закрывает FTP соединение.

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

11.
Функция STATUS FtRm (FTP *ftp, char *file) удаляет файл file на удаленном компьютере.

12.
Функция STATUS FtType (FTP *ftp, char type) устанавливает тип передаваемых данных. Допустимые значения для type: {\bigs 'A' - ascii, 'I' - binary (image), 'E' - EBCDIC}.

Аналогично функции

13.
STATUS FtAscii (FTP *ftp) устанавливает тип данных ASCII и
14.
STATUS FtBinary (FTP *ftp) устанавливает тип IMAGE.

next up previous contents
Next: Пример пользовательской программы Up: Приложения Previous: Приложения
Vladimir Chernenkov
2000-10-09