Процедуры NFS (продолжение)
NFSPROC3_MKNOD (процедура 11)
В клиентской программе процедура 11 вызывается для создания на сервере специального файла. Параметры ее вызова должны указывать тип специального файла (например, сокет), а процедура возвращает дескриптор нового файла. Реальный интернет бизнес 21 века: франчайзинг предложения. Как работу сменить на бизнес.
NFSPROC3_REMOVE (процедура 12)
В клиентской программе процедура 12 вызывается для удаления существующего файла. Результаты выполнения вызова содержат информацию о состоянии. Эта информация либо указывает, что операция была выполнена успешно, либо содержит код ошибки, позволяющий определить причины неудачи.
NFSPROC3_RMDIR (процедура 13)
В клиентской программе процедура 13 может применяться для удаления каталога. Допускается уничтожение только пустых каталогов. Поэтому для удаления целого поддерева в клиентской программе необходимо пройти по всему поддереву, удалить все файлы, а затем удалить оставшиеся пустые каталоги. Обычно удаление файлов и пустых каталогов выполняется в одной операции с использованием алгоритма обхода дерева каталогов в обратном порядке.
NFSPROC3.RENAME (процедура 14)
Процедура 14 позволяет переименовать файл в клиентской программе. Поскольку параметры этой процедуры позволяют указать в клиентской программе не только новое имя файла, но и новый каталог, эта операция переименования соответствует команде mv (сокращение от move — переместить). Спецификация NFS гарантирует, что операция переименования на сервере будет выполнена как атомарное действие (т.е. не может быть прервана). Обеспечение атомарности действия является очень важным, поскольку оно означает, что прежнее имя файла не будет удалено до тех пор, пока в каталоге не появится новое имя. Поэтому у пользователя не создается впечатление, что файл на время выполнения операции переименования исчезает с диска.
NFSPROC3JJNK (процедура 15)
В клиентской программе процедура 15 вызывается для формирования жесткой ссылки на существующий файл. Спецификация NFS гарантирует, что даже при наличии нескольких жестких ссылок файл всегда имеет одинаковые атрибуты, независимо от того, какая ссылка применяется для доступа к нему.
NFSPROC3_READDIR (процедура 16)
В клиентской программе процедура 16 вызывается для чтения записей из каталога. Параметры этой процедуры указывают дескриптор просматриваемого каталога, магический ключ и максимальное число считываемых символов. При первоначальном вызове в клиентской программе задается магический ключ, содержащий значение нуль, что приводит к выполнению сервером чтения записей с начала каталога. Возвращаемое значение содержит связанный список, содержащий от нуля и более записей каталога, и логическое значение, которое указывает, находится ли последняя возвращенная запись в конце каталога.
После успешного возврата управления из процедуры каждая запись каталога в связанном списке содержит имя файла, уникальный идентификатор файла, магический ключ, который указывает позицию файла в каталоге, и указатель на следующую запись в списке.
Для чтения последовательности записей в каталоге работа клиентской программы начинается с вызова процедуры NFSPR0C3_READDIR со значением магического ключа, равным нулю, и числом символов, равным размеру внутреннего буфера. Сервер возвращает число записей каталога, которое может поместиться в указанном буфере. Клиент проходит по циклу через список записей и обрабатывает каждое имя файла. Если возвращаемое значение показывает, что был достигнут конец каталога, клиент прекращает обработку. В ином случае, клиент использует магический ключ в текущей записи для выполнения на сервере еще одного вызова процедуры NFSPR0C3_READDIR и получения дополнительных записей. Клиент продолжает чтение групп записей до достижения конца каталога.
NFSPROC3_READDIRPLUS (процедура 17)
Процедура 17 действует аналогично процедуре 16, за исключением того, что возвращает не просто имя и дескриптор каждого файла, а полную информацию о файле. Если в клиентской программе необходимо получить все сведения о каждом файле в каталоге (например, о его атрибутах), то процедура NFSPR0C3_READDIRPLUS позволяет ускорить работу по сравнению с выполнением для той же цели вызовов процедур NFSPR0C3_READDIR и NFSPR0C3_GETATTR.
NFSPROC3_FSSTAT (процедура 18)
Процедура 18 позволяет получить в клиентской программе информацию об удаленной файловой системе, в которой находится файл. Возвращаемый результат содержит поля с такой информацией, как общий размер файловой системы и максимальное число файлов. Кроме того, процедура сообщает объем свободного пространства на диске и число свободных записей в каталоге.
NFSPROC3.FSINFO (процедура 19)
Процедура 19 возвращает информацию, которая может использоваться в клиентской программе для оптимизации обмена данными. Например, в полученных результатах указаны максимальные и предпочтительные размеры блоков информации, передаваемых по запросам READ, WRITE и READDIR. Кроме того, в ответе сервера должно быть указано, поддерживаются ли им такие средства, как символические ссылки.
NFSPROC3_PATHCONF (процедура 20)
В клиентской программе процедура 20 применяется для получения с сервера информации о конфигурации составного имени, которая включает сведения о том, какую максимальную длину может иметь компонент имени файла, являются ли имена чувствительными к регистру и усекает ли система имена, длина которых превышает максимальную.
NFSPROC3.COMMIT (процедура 21)
Процедура 21 вынуждает сервер выполнить сброс его буферов. Это означает, что в результате выполнения этой операции сервер должен сохранить в энергонезависимой памяти все данные, ранее переданные для записи в файл. Таким образом, после возврата управления процедурой NFSPR0C3_C0MMIT клиентская программа получает подтверждение того, что данные, переданные на сервер, останутся на нем даже после перезагрузки.