11.2.2. Закрытие файлов

11.2.2. Закрытие файлов

Одной из операций, которые одинаковы для файлов всех типов, является закрытие файла. Ниже показано, как закрыть файл.

#include <unistd.h>

int close(int fd);

Очевидно, что это базовая операция. Однако есть один важный момент, касающийся закрытия файлов, о котором следует помнить — она может завершиться сбоем. Некоторые системы (в первую очередь, следует вспомнить сетевые файловые системы вроде NFS) не пытаются поместить последнюю порцию записываемых данных в файл до тех пор, пока он не будет закрыт. Если такая операция вызовет сбой (например, по причине недоступности удаленного хоста), то close() вернет ошибку. Если ваше приложение пишет данные, но не синхронизирует записи (см. обсуждение O_SYNC в следующем разделе), то вы всегда должны проверять результат закрытия файла. Если close() дает сбой, то это значит, что обновленный файл поврежден самым непредсказуемым образом! К счастью подобное случается достаточно редко.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.12.4 Закрытие каналов

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

5.12.4 Закрытие каналов При закрытии канала процесс выполняет ту же самую процедуру, что и при закрытии обычного файла, за исключением того, что ядро, прежде чем освободить индекс канала, выполняет специальную обработку. Оно уменьшает количество процессов чтения из канала


Закрытие файлов

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Закрытие файлов После того, как вы поработали с файлом, его надо закрыть. Класс CFile имеет для этого специальный метод Close:virtual void Close() throw(CFileException);Метод закрывает файл. Если вы создали объект класса CFile и открыли файл, а затем объект удаляется, то связанный с ним файл


Закрытие файла

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Закрытие файла Для закрытия объектов любого типа, объявления недействительными их дескрипторов и освобождения системных ресурсов почти во всех случаях используется одна и та же универсальная функция. Исключения из этого правила будут оговариваться отдельно. Закрытие


10.6 Закрытие соединения

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

10.6 Закрытие соединения Нормальное завершение соединения выполняется с помощью той же процедуры тройного рукопожатия, что и при открытии соединения. Каждая из сторон может начать закрытие соединения по следующему сценарию:A: "Я закончил работу. Данных для пересылки


10.1.1. Открытие и закрытие файлов

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

10.1.1. Открытие и закрытие файлов Метод класса File.new, создающий новый объект File, также открывает файл. Первым параметром, естественно, является имя файла.Необязательный второй параметр называется строкой указания режимам он говорит, как нужно открывать файл — для чтения,


Закрытие открытых файлов

Из книги VBA для чайников автора Каммингс Стив

Закрытие открытых файлов Будьте аккуратными - после того как работа с файлами завершена, их следует закрыть.Закрытие файла гарантирует, что все хранимые в памяти изменения действительно будут записаны на диск, а ресурсы, занимаемые файлами, освободятся и станут


Закрытие потоков

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Закрытие потоков Функции fclose и fcloseall закрывают поток или потоки. Функция fclose закрывает один заданный поток, fcloseall — все потоки, кроме потоков stdin, stdout, stderr, stdaux, stdprn.Если программа не выполняет закрытия потоков, потоки автоматически закрываются, когда программа завершается


Закрытие файлов

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Закрытие файлов Функция close закрывает открытые файлы. Открытые файлы также автоматически закрываются при неаварийном завершении


Закрытие процесса

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

Закрытие процесса Чтобы закрыть процесс, используется метод Kill, код которого приведен в листинге 7.29.Листинг 7.29public void Kill() { IntPtr hProcess; hProcess = OpenProcess(PROCESS_TERMINATE, false, (int) processId); if (hProcess != (IntPtr) INVALID_HANDLE_VALUE) {  bool bRet;  bRet = TerminateProcess(hProcess, 0);  CloseHandle(hProcess); }}Данный метод также использует


Закрытие PGP диска.

Из книги Linux программирование в примерах автора Роббинс Арнольд

Закрытие PGP диска. Закройте все программы и файлы, имеющиеся на диске PGP, т.к. невозможно закрыть диск, если файлы на этом диске до сих пор еще открыты. Теперь зайдите в мой компьютер выделите мышкой диск PGP, нажмите на правую кнопку мышки и выберите команду <unmount> в


4.4.2. Открытие и закрытие файлов

Из книги 1С: Бухгалтерия 8.2. Понятный самоучитель для начинающих автора Гладкий Алексей Анатольевич

4.4.2. Открытие и закрытие файлов Новые дескрипторы файлов получают (наряду с другими источниками) в результате системного вызова open(). Этот системный вызов открывает файл для чтения или записи и возвращает новый дескриптор файла для последующих операций с этим файлом. Мы


4.4.2.2. Закрытие всех открытых файлов

Из книги Инфобизнес за один день автора Ушанов Азамат

4.4.2.2. Закрытие всех открытых файлов Открытые файлы наследуются порожденными процессами от своих родительских процессов. Фактически они являются общими. В частности, общим является положение в файле. Подробности мы оставим для дальнейшего обсуждения в разделе 9.1.1.2


Закрытие месяца

Из книги Как приручить компьютер за несколько часов автора Ремнева Ирина


12. Закрытие продаж

Из книги автора

12. Закрытие продаж Как только 36 часов истекли, вешаем на сайт сообщение: «Регистрация закончена». Вот что вы пропустили. Можно сказать, вам не повезло. Рассказываем о бонусах, про которые в тексте рекламы не говорили – чтобы для людей, которые не успели, это стало уроком. Вы


Закрытие окна

Из книги автора

Закрытие окна При работе экран постепенно загромождается открытыми окнами программ. При этом становится трудно разобраться в них. Поэтому когда вы заканчиваете работу с программой, то окно с ней стоит закрыть.При нажатии на кнопку Закрытие окна окно исчезает из поля