Процедуры NFS

Опубликовано в Технологии > Серверные технологии Продолжение

После объявления констант и типов данных остается только определить удаленные процедуры, реализующие данный протокол. Сервер NFS предоставляет доступ к удаленной программе, которая реализует 21 процедуру (не считая пустой процедуры NULL). Эта программа может быть объявлена на языке RPC следующим образом:

Назначение операций NFS

Основная часть операций NFS предназначена для выполнения таких же операций, какие осуществляются с использованием файловых операций в системах типа Linux. В каждом из следующих разделов описано назначение одной из удаленных процедур NFS.

NFSPROC3_NULL (процедура 0)

В соответствии с общепринятым соглашением, процедура 0 в любой программе RPC является пустой, поскольку не выполняет никаких действий. Такая процедура может быть вызвана в приложении для проверки того, отвечает ли на запросы определенный сервер. Бесплатное создание и продвижение сайта. Услуги продвижение сайта в Яндексе.

NFSPROC3_GETATTR (процедура 1)

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

NFSPROC3_SETATTR (процедура 2)

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

NFSPROC3_LOOKUP (процедура 3)

В клиентской программе процедура 3 может быть вызвана для поиска файла в каталоге. В случае ее успешного выполнения возвращаемое значение содержит дескриптор указанного файла и его атрибуты.

NFSPROC3_ACCESS (процедура 4)

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

NFSPROC3_READLINK (процедура 5)

Процедура 5 позволяет прочитать в клиентской программе значение из символической ссылки (ярлыка).

NFSPROC3_READ (процедура 6)

Процедура 6 обеспечивает выполнение одной из наиболее важных функций, поскольку позволяет читать данные из файла в клиентской программе. Результат, возвращаемый сервером, представляет собой объединение. В случае успешного выполнения этой операции результат содержит атрибуты файла, а также затребованные данные. Если операция оканчивается неудачей, то значение кода состояния содержит код ошибки.

NFSPROC3.WRITE (процедура 7)

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

NFSPROC3_CREATE (процедура 8)

В клиентской программе процедура 8 вызывается для создания файла в указанном каталоге. Этот файл не должен существовать перед вызовом процедуры, так как в противном случае вызов возвратит код ошибки. Результат вызова представляет собой объединение, которое содержит либо информацию об ошибке, либо дескриптор нового файла вместе с его атрибутами.

NFSPROC3_MKDIR (процедура 9)

В клиентской программе процедура 9 вызывается для создания нового каталога (папки) на сервере. В случае успешного выполнения этой операции процедура возвращает дескриптор нового каталога наряду со списком его атрибутов, а в случае неудачного выполнения вызова возвращаемое значение информации о состоянии указывает на причину ошибки.

NFSPROC3_SYMLINK (процедура 10)

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

Похожие статьи