Открытие, создание, закрытие и удаление

Во всех случаях, если только не используются определен-ные по умолчанию стандартные файлы ввода, вывода и ошибок,вы должны явно открывать файлы, чтобы затем читать из нихили писать в них. Для этой цели существуют две функции: open и creat. Функция open весьма сходна с функцией fopen, рассмот-ренной выше, за исключением того, что вместо возвращенияуказателя файла она возвращает дескриптор файла, которыйявляется просто целым типа int. int fd; fd = open (name, rwmode); -68- Как и в случае fopen, аргумент name является символьнойстрокой, соответствующей внешнему имени файла. Однако аргу-мент, определяющий режим доступа, отличен: rwmode равно: 0 -для чтения, 1 - для записи, 2 - для чтения и записи. Еслипроисходит какая-то ошибка, функция open возвращает "-1"; впротивном случае она возвращает неотрицательный дескрипторфайла. Попытка открыть файл, который не существует, являетсяошибкой. Функция creat предоставляет возможность созданияновых файлов или перезаписи старых. В результате обращения: fd = creat (name, pmode); возвращает дескриптор файла, если оказалось возможным соз-дать файл с именем name, и "-1" в противном случае. Созда-ние файла, который уже существует, не является ошибкой: creat усечет его до нулевой длины. Если файл ранее не существовал, то creat создает его сопределенным режимом защиты, специфицируемым аргументом pmode. В системе файлов ОС ДЕМОС с файлом связываются девятьбитов защиты информации, которые управляют разрешением начтение, запись и выполнение для владельца файла, для группывладельцев и для всех остальных пользователей. Таким обра-зом, трехзначное восьмеричное число наиболее удобно длязаписи режима защиты. Например, число 0755 свидетельствует оразрешении на чтение, запись и выполнение для владельца и оразрешении на чтение и выполнение для группы и всех осталь-ных. Существует ограничение (обычно 15 - 25) на количествофайлов, которые программа может иметь открытыми одновре-менно. В соответствии с этим любая программа, собирающаясяработать со многими файлами, должна быть подготовлена к пов-торному использованию дескрипторов файлов. Процедура close прерывает связь между дескриптором файла и открытым файлом иосвобождает дескриптор файла для использования с другим фай-лом. Завершение выполнения программы через exit или врезультате возврата из головной функции приводит к закрытиювсех открытых файлов. Функция удаления unlink (filename) удаляет из системыфайл с именем filename (Точнее, удаляет имя filename, файлудаляется, если на него не остается ссылок под другими име-нам).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: