лекции проги / lec12
.pdfПрава доступа в системе UNIX.
Права доступа к файлам устанавливаются для 3 - х категорий пользователей:
I Владелец файла.
Права доступа отображаются при просмотре каталога командой ls -l в виде символьной строки, которая формируется по следующему правилу: для каждой группы пользователей в строке прав доступа выделяется 3 символа, каждый из которых может принимать следующие значения:
Права доступа в системе UNIX.
Права доступа к файлам устанавливаются для 3 - х категорий пользователей:
IВладелец файла.
IУчастник группы пользователей.
Права доступа отображаются при просмотре каталога командой ls -l в виде символьной строки, которая формируется по следующему правилу: для каждой группы пользователей в строке прав доступа выделяется 3 символа, каждый из которых может принимать следующие значения:
Права доступа в системе UNIX.
Права доступа к файлам устанавливаются для 3 - х категорий пользователей:
IВладелец файла.
IУчастник группы пользователей.
IПрочие пользователи.
Права доступа отображаются при просмотре каталога командой ls -l в виде символьной строки, которая формируется по следующему правилу: для каждой группы пользователей в строке прав доступа выделяется 3 символа, каждый из которых может принимать следующие значения:
Пример:
rwxr − x − −x соответствует 111101001
Полученное двоичное число переводят в восьмиричное, записав в виде восьмеричной цифры каждую группу из 3 - х двоичных цифр: 0777 - все разрешено.
0600 соответствует rw − − − − − −−.
Закрытие файла осуществляется функцией close(дескриптор).
Полный пример создания файла.
Чтение и запись данных.
Ввод - вывод данных на нижнем уровне осуществляется функциями read() и write(). Прототипы этих функций: int read(int fd, char *bu er, unsigned int count);
int write(int fd, char *bu er, unsigned int count);
Функция read() читает из файла с дескриптором fd count байт в буффер, определенный указателем bu er. Функция write() пишет в файл с дескриптором fd count байт из буффера, определенного указателем bu er.
Пример: Копирование произвольного файла. Программа получает имена файлов из командной строки при запуске и позволяет копировать произвольные файлы. Вызов программы из коммандной строки будет иметь вид: copyf.exe f1.dat f2.dat
Произвольный доступ к файлу.
Прототип функции lseek() имеет вид: long lseek(int fd, long o set, int origin);
Функция изменяет текущую позицию в файле, связанном с дескриптором fd, на новую, определяемую смещением o set, относительно выбранной точки отсчета origin.
Для определения текущей позиции используется функция tell(). Прототип имеет вид:
long tell(int fd);
Пример.