Обработка ошибок - stderr и exit

При печати диагностических сообщений желательно, чтобыони поступали на терминал, даже если стандартный вывод пос-тупает в некоторый файл или в межпроцессный канал. Чтобы лучше обрабатывать такую ситуацию, к программеточно таким же образом, как stdin и stdout, автоматическиприсоединяется второй выходной файл, называемый stderr. Еслиэто вообще возможно, вывод, записанный в файле stderr, появ-ляется на терминале пользователя, даже если стандартныйвывод направляется в другое место (на самом деле имеетсявозможность направить такие сообщения в файл, но этого непроисходит при простом перенаправлении стандартного вывода). Программа может также использовать функцию exit изстандартной библиотеки, обращение к которой вызывает завер-шение выполнения программы. Аргумент функции exit доступенпрограмме, вызвавшей программу пользователя в качестве под-задачи, так что она может проверить успешное или неудачноезавершение данной программы. По соглашению, величина 0 вкачестве возвращаемого значения свидетельствует о том, чтовсе в порядке, а различные ненулевые значения являются приз-наками ненормальных ситуаций. Функция exit вызывает функцию fclose для каждого откры-того выходного файла, с тем чтобы вывести всю помещенную вбуферы выходную информацию, а затем вызывает функцию _ exit. Функция _ exit приводит к немедленному завершению без очистки -61- каких-либо буферов; конечно, при желании к этой функцииможно обратиться непосредственно.

Ввод и вывод строк

Стандартная библиотека содержит функцию fgets. Врезультате обращения fgets (line, maxline, fp) следующая строка ввода (включая символ новой строки) считы-вается из файла fp в символьный массив line; самое большее maxline - 1 символ будет прочитан. Результирующая строказаканчивается символом \0. Обычно функция fgets возвращает line; в конце файла она возвращает NULL. Предназначенная для вывода функция fputs записываетстроку (которая не обязана содержать символ новой строки) вфайл: fputs (line, fp) Функции gets и puts являются упрощенными вариантами fgets и fputs, которые работают с файлами стандартноговвода и вывода и не проверяют длину строки; gets не записы-вает символ новой строки в память, а puts дописывает этотсимвол в файл в конце строки: gets (line) puts (line)

Функция ungetc

Стандартная библиотека содержит функцию, возвращающуюпоследний считанный символ. В результате обращения ungetc (c, fp) символ c возвращается в файл fp. Позволяется возвращать вкаждый файл только один символ.

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



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