Назад |
ОС UNIX по умолчанию имеет, по крайней мере, одну файловую систему, создаваемую при ее генерации. К ней можно присоединить файловые системы, находящиеся на других устройствах. Для этого необходимо выполнить процедуру, которую называют "монтированием" (mount). "Монтирование" производится при помощи системного вызова mount ( ). Формат его следующий:
#include <sys/types.h> #include <sys/mount.h> int mount (const char *spec, const char *path, int mode);
(Здесь и далее указываются файлы-заголовки ( .h ), в которых определяются прототипы функций, константы и другие объекты, используемые для программирования. Где находятся эти файлы, а также, что еще необходимо для построения приложений в среде UNIX, подробно описывается ниже).
Аргумент spec задает имя специального файла, соответствующего устройству, содержащему файловую систему, path - полное имя директории в существующей файловой системе, mode - режим "монтирования". Указание режима необходимо при присоединении файловых систем, отличающихся по своей природе от файловой системы UNIX (например, файловой системы MS DOS). mount ( ) возвращает значение 0 при успешном завершении и - 1, если в процессе выполнения операции произошли ошибки.
Новая файловая система присоединяется к существующей в точке, указанной параметром path. Другими словами, содержимое директории path заменяется содержимым "корневой" директории новой файловой системы.
Рассмотрим пример присоединения
файловой системы, находящейся на дискете, к
директории "/mnt". Предполагается, что
устройству соответствует специальный файл с
именем "/dev/diskette"
(см. прототип функции
perror ( ) в [6]).
if (( err = mount ("/dev/diskette", "/mnt", 0 )) = = - 1 ) perror ("mount: ошибка монтированная");
Операция обратная "монтированию" - отсоединение ("де-монтирование") производится системным вызовом umount ( ):
#include <sys/types.h> #include <sys/mount.h> int mount (const char *path);
Ее аргумент задает полное имя директории, к которой файловая система была ранее присоединена. При успешном завершении функция возвращает 0. "Де-монтирование" файловой системы не может быть произведено, если какой-либо процесс производит операции ввода-вывода с файлами, входящими в ее состав.