Передача данных

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

В приложении функция read используется для передачи данных из файла в память, а функция write — для передачи данных из памяти в файл. Функция read принимает три параметра: дескриптор открытого файла, адрес буфера и число считываемых байтов. Например, следующий оператор представляет собой требование к операционной системе прочитать 24 байта данных из файла с дескриптором f desc:

n=read(fdesc,buf f,2 4); 

Операции read и write начинают передачу данных с текущей позиции в файле и обновляют позицию в файле по окончании своей работы. Например, если приложение открывает файл, переходит в позицию 0 и читает 10 байтов из файла, то после завершения этой операции чтения позиция в файле будет равна 10. Поэтому в программе можно извлечь все данные из файла последовательно, начиная с позиции 0 и повторно вызывая функцию read.

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

Право на поиск в каталоге

В системе UNIX файлы организованы в виде иерархической структуры с использованием каталогов3 для хранения файлов и других каталогов. В этой системе для каталогов применяется такая же 9-битовая схема режимов защиты, как и для обычных файлов данных. Биты прав на чтение определяют, может ли приложение получить список файлов в каталоге, а биты прав на запись определяют, может ли приложение вставлять или удалять файлы в этом каталоге. Каждый отдельный файл имеет отдельный набор битов прав доступа, которые определяют, какие операции с содержимым этого файла разрешено выполнять пользователям различных категорий. Права доступа к каталогу указывают только то, какие операции разрешено выполнять с самим каталогом, и не относятся к содержащимся в нем файлам. Внедрение полнофункционального решения infrasuite обеспечивает высокую надежность и.

Каталоги могут содержать прикладные программы, но сами они не состоят из оттранслированного кода. Это означает, что они не могут вызываться на выполнение как прикладные программы, поэтому права на выполнение для каталога не имеют смысла. В системе UNIX биты прав на выполнение применительно к каталогам означают права на выполнение поиска. Если приложение имеет право на поиск, оно может обращаться к файлу, находящемуся в каталоге; в ином случае, система не допускает использования в приложении каких-либо ссылок на этот файл. Права на поиск позволяют раскрыть для приложения или скрыть от него целое поддерево иерархии файлов, не изменяя прав доступа к отдельным файлам в этом поддереве.

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