Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение»



страница2/5
Дата22.05.2013
Размер0.6 Mb.
ТипМетодические указания
1   2   3   4   5

Системный вызов ореn


Системный вызов ореn (открыть файл) имеет следующий формат:

#include

open(name, flags, mode)

char *name;

int flags, mode;

Системный вызов open открывает файл с именем name для чтения и/или записи. Режим открытия файла определяется значением параметра flags. Это значение может быть задано как результат логического сложения следующих признаков (в любой комбинации):

0_RDONLY - открыть только для чтения.

0_WRONLY -открыть только для записи.

0_RDWR - открыть для чтения и записи.

0_NDELAY - не блокировать при открытии. Если операция открытия задерживается по каким-либо причинам, например, при отсутствии готовности линии связи, процесс не приостанавливается. Возвращается код ошибки.

0_АРРЕND - открыть для дозаписи. Обычно, при открытии файла, указатель текущей позиции чтения/записи устанавливается на его начало, но, если задан режим 0_АРРЕND, этот указатель устанавливается на конец файла.

0_СRЕАТ - создать файл, если он не существует.

0_TRUNC - сократить размер файла. В режиме 0_ТRUNC, если указанный файл существует, его размер усекается до нуля.

0_ЕХСL - выдавать ошибку при попытке создания существующего файла. (Этот признак используется в сочетании с признаком 0_СRЕАТ). Режим может применяться для организации простого механизма блокировки.

В случае успешного завершения вызова Ореn, возвращается дескриптор открытого файла, иначе - значение -1 и в переменную еrrnо записывается код ошибки.

При неудачном завершении, переменная еrrnо может принимать следующие значения:

[ЕNOTDIR] - указанное имя, содержит компоненту, которая не является справочником;

[ЕNOENT] - указанный файл не существует и режим 0_СRЕАТ не был определен;

[ЕРЕКМ] - указанное имя содержит символ, отсутствующий в коде АSCП*);

[ЕLООР] - число косвенных ссылок в указанном имени превышает максимально допустимое значение;

[ЕROFS] - указанный файл содержится в файловой системе закрытой по записи и не может быть модифицирован;

[ЕTXTBSY] - попытка открыть на запись файл, содержащий загрузочный модуль выполняющейся реентерабельной программы;

[ЕАССЕS] - режим доступа указанного файла не соответствует

запросу;

[ЕFAULТ] - адрес параметра системного вызова выходит за границы адресного пространства процесса;

[ЕISDIR] Попытка открыть на запись справочник;

[ЕМFILЕ] - переполнена таблица дескрипторов открытых файлов процесса;

[ЕNXIO] - указанный файл является внешним устройством, которое в данный момент не готово к работе.

Системный вызов сrеаt


Системный вызов сrеаt (создать файл) имеет следующий формат:

сreat(name,mode)

сhar *name;

int mode;

Функция сгеаt создает новый (или подготавливает к повторной записи уже существующий) файл с именем name. Если файл еще не существует, значение параметра mode используется для формирования режимов доступа создаваемого файла, при этом учитывается значение маски режимов процесса. Значение параметра mode составляется по правилам, приведенным в описание системного вызова chmod. Если указанный файл существует, то его владелец и режим доступа остаются прежними, а файл усекается до нулевой длины. Кроме того, файл открывается для записи и возвращается его дескриптор.

При неудачном завершении, операции сгеаt возвращается значение -1, в остальных случаях возвращается дескриптор открытого файла (целое положительное число).

После неудачного завершения системного вызова сгеаt переменная еrrnо может принимать следующие значения:

[ЕNOTDIR] - указанное имя содержит компоненту, которая не является справочником;

[ЕNOENТ] - задано слишком длинное или пустое имя файла, или указанный файл не существует или какой-либо из справочников, входящих в имя файла, не доступен для просмотра;

[ЕРЕКМ] - указанное имя содержит символ, отсутствующий в коде АSСП;

[ELООР] - число косвенных ссылок в указанном имени превышает максимально допустимое значение;

[ЕROFS] - попытка создания файла в файловой системе, закрытой на запись;

[ЕТХТВSУ] - попытка сократить длину файла, содержащего загрузочный модуль реентерабельной программы (разделяемый текстовый сегмент), которая в настоящей момент выполняется;

[ЕАССЕS] - режим доступа указанного файла не соответствует запросу;

[ЕFAULТ] - адреса аргументов системного вызова выходят за границы памяти, доступной данному процессу;

[ЕISDIR] - указанное имя файла является именем справочника;

[ЕМFILЕ] - переполнилась таблица открытых файлов процесса;

[ЕNXIO] - указано имя специального файла, для которого нет соответствующего устройства.

Параметр mode задается произвольно, в нем не обязательно должно быть разрешение на запись. Эта возможность используется программами, которые работают с временными файлами с фиксированными именами. Создание производится с режимом, запрещающим запись. Затем, если другая программа пытается выполнить вызов сгеаt, возвращается ошибка и программе становится известно, что в данный момент это имя использовать нельзя. Все действия, перечисленные для вызова сгеаtе, можно выполнить с помощью системного вызова ореn. Вызов сгеаtе оставлен для совместимости с ранними версиями ОС Unix.
1   2   3   4   5

Похожие:

Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические указания к выполнению курсовых работ по курсу «Общая геология» Список тем курсовых работ
...
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические указания по выполнению курсовых работ и по дисциплине «Генетика»

Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические указания к выполнению курсовых работ Системный анализ Рыбинск 2011 Указания к выполнению курсовых работ
Студентом формируется краткое формальное описание постановки задачи, определяется импульсная переходная функция системы, структурная...
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические указания к выполнению лабораторных и курсовых работ иркутск 2007
...
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМоделирование колебательных процессов Методические указания к выполнению лабораторных работ по дисциплине «Моделирование физических систем»
«Информатика и вычислительная техника» и специальности 230105. 65 «Программное обеспечение вычислительной техники автоматизированных...
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические рекомендации к выполнению лабораторных работ по дисциплине «Информационное обеспечение товароведения и экспертизы товаров» для студентов
Методические рекомендации к выполнению лабораторных работ по дисциплине Информационное обеспечение
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconП. Ф. Лесгафта г. Санкт-Петербург Л. А. Заварухина информатика (лекции) Санкт-Петербург 2009 Содержание лекция
Новые термины и понятия: программа, программное обеспечение, базовое программное обеспечение, системное программное обеспечение,...
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические указания по их выполнению для студентов, обучающихся по специальности 080502 «Экономика и управление на предприятии»
...
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические указания и задания к выполнению лабораторных работ по дисциплине «Методы оптимизации» Хабаровск Издательство тогу 2010
Методы одномерной оптимизации : методические указания и задания к выполнению лабораторных работ по дисциплине «Методы оптимизации»/...
Методические указания по выполнению курсовых работ по дисциплине «Системное программное обеспечение» iconМетодические указания по выполнению курсовых работ по курсу «Управление информационными ресурсами»

Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org