Программирование для Linux. Профессиональный подход
Шрифт:
В самом начале программного фрагмента можно было поставить следующий код:
Но в таком случае, если функция завершится неуспешно, у нас не будет возможности обработать или исправить ошибку и даже просто сообщить о ней. Какую форму проверки использовать — зависит от требований к обнаружению и последующему исправлению ошибок в программе.
2.2.4. Ошибки выделения ресурсов
Обычно при неудачном выполнении системного вызова наиболее приемлемое решение — отменить текущую операцию, но не завершить программу, так как можно восстановить ее нормальную работу. Один из способов сделать это — выйти из текущей функции, передав через оператор
В случае, когда выход осуществляется посреди функции, важно убедиться в том, что ресурсы, выделенные в функции
В качестве примера рассмотрим функцию, загружающую содержимое файла в буфер. Функция выполняет такую последовательность действий:
1. выделяет буфер;
2. открывает файл;
3. читает содержимое файла и записывает его в буфер;
4. закрывает файл;
5. возвращает буфер вызывающему модулю.
Если файл не существует, этап 2 закончится неудачей. Подходящая реакция в этом случае — вернуть из функции значение
В листинге 2.6 показан пример реализации такой функции.
Избранное
Проза:
советская классическая проза
рейтинг книги
История политических и правовых учений. Шпаргалки
Зачет
Научно-образовательная:
обществознание
юриспруденция
государство и право
шпаргалки
рейтинг книги
Точка Бифуркации XII
12. ТБ
Фантастика:
аниме
фэнтези
попаданцы
рейтинг книги
Сборник "Этические уравнения"
Фантастика:
научная фантастика
рейтинг книги
Мечников. Из доктора в маги
1. Жизнь Лекаря с нуля
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Качество, эффективность, нравственность
Научно-образовательная:
учебники
рейтинг книги
Технарь
1. Технарь
Фантастика:
космическая фантастика
попаданцы
рейтинг книги
Безудержная страсть
Любовные романы:
современные любовные романы
рейтинг книги
Собрание сочинений в шести томах. Том 6
Проза:
советская классическая проза
рейтинг книги
Пламенев. Книга X
10. Пламенев
Фантастика:
аниме
уся
сказочная фантастика
фэнтези
фантастика: прочее
рейтинг книги
Гимн Непокорности
2. Хроники геноцида
Фантастика:
попаданцы
фэнтези
рейтинг книги
Большой Сочи. История Кавказа
Приключения:
путешествия и география
рейтинг книги
Держава Света (сборник)
Религия и эзотерика:
эзотерика
рейтинг книги
Официант-бармен. Пособие для учащихся средних профессионально-технических училищ
Научно-образовательная:
прочая научная литература
рейтинг книги