Содержание

Функции ввода / вывода

В этой главе описаны стандартные функции ввода/вывода в языке С. Сюда вошли функции, определенные как в Стандарте C89, так и в Стандарте C99. С функциями ввода/вывода ассоциирован заголовок <stdio.h>. Этот заголовок определяет некоторые макросы и типы, которые используются файловой системой. Наиболее важным из них является тип FILE, который используется для объявления указателя на файл. Два других часто используемых типа — size_t и fpos_t. Тип size_t, представляющий собой некоторую разновидность целых без знака, — это тип результата, возвращаемого функцией sizeof. Тип fpos_t определяет объект, который однозначно задает каждую позицию в файле. Самым популярным макросом, определенным в этом заголовке, является макрос EOF, значение которого указывает на конец файла. Другие типы данных и макросы, определенные в заголовке <stdio.h>, описаны вместе с функциями, с которыми они связаны.

Многие функции ввода/вывода при возникновении ошибки присваивают встроенной глобальной переменной целого типа errno определенное значение. Анализ этой переменной поможет программе получить более подробную информацию о возникшей ошибке. Значения, которые может принимать переменная errno, зависят от конкретной реализации компилятора.

В версии C99 введен квалификатор restrict, который применяется к некоторым параметрам нескольких функций, первоначально определенных в версии C89. При рассмотрении каждой такой функции будет приведен ее прототип, используемый в среде C89 (который одновременно является прототипом в C++), а параметры с атрибутом restrict будут отмечены в описании этой функции.

Обзор системы ввода/вывода приведен в главах 8 и 9 части I.

На заметкуВ этой главе описаны функции познакового ввода/вывода. Эти функции были введены в Стандарт С с самого начала и, безусловно, являются наиболее часто используемыми. В 1995 году было добавлено несколько функций, позволяющих обрабатывать символы в расширенном 16-битном алфавите (wchar_t); эти функции кратко описаны в главе 19.

clearerr
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
fopen
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
setbuf
setvbuf
snprintf
sprintf
sscanf
tmpfile
tmpnam
ungetc
vprintf, vfprintf, vsprintf, vsnprintf
vscanf, vfscanf, vsscanf


Содержание