УПРАВЛЕНИЕ ДИРЕКТОРИЯМИ Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.

Презентация:



Advertisements
Похожие презентации
УПРАВЛЕНИЕ ДИРЕКТОРИЯМИ Системные вызовы и библиотеки Unix SVR4.
Advertisements

ЗАХВАТ ФАЙЛОВ И ЗАПИСЕЙ Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.
УПРАВЛЕНИЕ ФАЙЛАМИ Системные вызовы и библиотеки Unix SVR4.
Асинхронный ввод/вывод Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.
СИСТЕМНЫЕ ВЫЗОВЫ ВВОДА И ВЫВОДА Системные вызовы и библиотеки Unix SVR4.
ЗАХВАТ ФАЙЛОВ И ЗАПИСЕЙ Системные вызовы и библиотеки Unix SVR4.
Средства System V IPC Системные вызовы и библиотеки Unix SVR4.
Работа с файлами FILE НГТУ ИРИТ кафедра ИСУ Ольга Пронина.
Средства System V IPC Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы.
РНР Изучение языка. Работа с файлами Для длительного хранения данных в файловой системе сервера часто используются обычные текстовые файлы. Открыть файл.
ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Лекция 4 Работа с бинарными файлами (весенний семестр 2012 г.) Доцент Кафедры вычислительных систем, к.т.н. Поляков.
Программирование на языке Паскаль Работа с файловой системой.
Операционные системы Файловые системы (часть 2). Организация ФС UNIX. Виды файлов Обычный файл (regular file) Каталог (directory) Специальный файл устройств.
Файловый ввод-вывод Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» ФГОБУ ВПО "СибГУТИ"
ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Лекция 3 Работа с файлами (весенний семестр 2012 г.) Доцент Кафедры вычислительных систем, к.т.н. Поляков Артем.
Взаимодействие процессов: сокеты.
Семафоры-счетчики POSIX Программирование с использованием POSIX thread library.
Текстовые файлы Вербицкая Ольга Владимировна, Заозерная школа 16.
3. Механизм сокетов 3.1. Общие концепции 3.2. Интерфейсные функции для работы с сокетом Создание сокета Связывание и установление соединения.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Транксрипт:

УПРАВЛЕНИЕ ДИРЕКТОРИЯМИ Системные вызовы и библиотеки Unix SVR4 Иртегов Д.В. ФФ/ФИТ НГУ Электронный лекционный курс подготовлен в рамках реализации Программы развития НИУ-НГУ на г.г.

СВОЙСТВА ДИРЕКТОРИИ используется для организации обычных файлов, программных каналов, специальных файлов и других директорий формат, требуемый операционной системой содержит имена файлов и inode-номера записи в директории называются связями нет ограничения глубины вложенности поддиректорий права доступа –r: право на чтение –w: право на запись –x: право на поиск

Системно-независимая структура записи в директории struct dirent { ino_t d_ino; /* "inode number" of entry */ off_t d_off; /* offset of disk directory entry */ unsigned short d_reclen; /* length of this record */ char d_name[1]; /* name of file */ };

Изменение текущей директории ИСПОЛЬЗОВАНИЕ #include int chdir(conts char *path); int fchdir(int fildes); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена

Создание директории ИСПОЛЬЗОВАНИЕ #include int mkdir(const char *path, int mode); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена

Удаление директории ИСПОЛЬЗОВАНИЕ #include int rmdir(conts char *path); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена

Создание и удаление цепочки директорий ИСПОЛЬЗОВАНИЕ #include int mkdirp(conts char *path, int mode); int rmdirp(char *path, char *path1); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - mkdirp -1 и errno установлена rmdirp - -1, -2 или -3

Чтение директории ИСПОЛЬЗОВАНИЕ #include DIR *opendir(const char *filename); struct dirent *readdir(DIR *dirp); long teldir(DIR *dirp); void seekdir(DIR *dirp, long loc); void rewinddir(DIR *dirp); int closedir(DIR *dirp); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех – opendir, readdir - указатель на структуру closedir - 0 telldir - текущая позиция неуспех - opendir, readdir - NULL и errno установлена telldir, closedir - -1 и errno установлена

Чтение директории readdir возвращает один и тот же указатель, поэтому память из-под struct dirent * освобождать не надо В действительности, структура DIR содержит небольшой кольцевой буфер Есть форма int readdir_r(DIR *restrict dirp, struct dirent *restrict entry, struct dirent **restrict result); При размещении struct dirent необходимо также разместить память под строку d_name; размер этой строки рекомендуется определять при помощи pathconf(dir, _PC_NAME_MAX), т.е. динамически

Создание связи ИСПОЛЬЗОВАНИЕ #include int link(const char *path1, const char *path2); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена

Жесткая связь

Создание символической связи ИСПОЛЬЗОВАНИЕ #include int symlink (const char *name1, const char *name2); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена

Символическая связь

Чтение значения симлинка ИСПОЛЬЗОВАНИЕ #include int readlink(const char *path, void *buf, size_t bufsize); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - количество символов, считанных в буфер неуспех - -1 и errno установлена

Следование симлинкам следуют символическим связям open(2) chmod(2) chown(2) Не следуют символическим связям chgrp(2) chdir(2) stat(2) lchown(2) readlink(2) lstat(2) link(2) unlink(2) rename(2) rmdir(2)

Удаление записи из директории ИСПОЛЬЗОВАНИЕ #include int unlink(const char *path); int remove( const char *filename); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех - -1 и errno установлена

Переименование файла ИСПОЛЬЗОВАНИЕ #include int rename(const char *old, const char *new); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех - 0 неуспех -1 и errno установлена

Разбор путевого имени ИСПОЛЬЗОВАНИЕ cc -lgen #include char *dirname(char *path); char *basename(char *path); ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ успех – компонент имени неуспех - NULL