int putc(int с, FILE *stream);
putc
делает то же, что и fputc, но в отличие от последней, если putc - макрос, значение stream может браться более одного раза. int putchar(int c);
putchar
(c) делает тоже, что putc(c, stdout). int puts(const char *s);
puts
пишет строку s и символ новой строки в stdout. Возвращает EOF в случае ошибки, или неотрицательное значение, если запись прошла нормально. int ungetc(int с, FILE *stream);
ungetc
отправляет символ c (переведенный в unsigned char) обратно в stream; при следующем чтении из stream он будет получен снова. Для каждого потока вернуть можно не более одного символа. Нельзя возвращать EOF. В качестве результата ungetc выдает отправленный назад символ или, в случае ошибки, EOF. B1.5. Функции прямого ввода-вывода
size_t fread(void *ptr, size_t size, size_t nobj, FILE *stream);
fread
читает из потока stream в массив ptr не более nobj объектов размера size. Она возвращает количество прочитанных объектов, которое может быть меньше заявленного. Для индикации состояния после чтения следует использовать feof и ferror. size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *stream);
fwrite
пишет из массива ptr в stream nobj объектов размера size; возвращает число записанных объектов, которое в случае ошибки меньше nobj. B1.6. Функции позиционирования файла
int fseek(FILE *stream, long offset, int origin);
fseek
устанавливает позицию для stream; последующее чтение или запись будет производиться с этой позиции. В случае бинарного файла позиция устанавливается со смещением offset - относительно начала, если origin равен SEEK_SET; относительно текущей позиции, если origin равен SEEK_CUR; и относительно конца файла, если origin равен SEEK_END. Для текстового файла offset должен быть нулем или значением, полученным с помощью вызова функции ftell. При работе с текстовым файлом origin всегда должен быть равен SEEK_SET. long ftell(FILE *stream);
ftell
возвращает текущую позицию потока stream или -1L, в случае ошибки. void rewind(FILE *stream);
rewind
(fp) делает то же, что и fseek(fp, 0L, SEEK_SET); clearerr(fp). int fgetpos(FILE *stream, fpos_t *ptr);
fgetpos
записывает текущую позицию потока stream в *ptr для последующего использования ее в fsetpos. Тип fpos_t позволяет хранить такого рода значения, В случае ошибки fgetpos возвращает ненулевое значение. int fsetpos(FILE *stream, const fpos_t *ptr);
fsetpos
устанавливает позицию в stream, читая ее из *ptr, куда она была записана ранее с помощью fgetpos. В случае ошибки fsetpos возвращает ненулевое значение. B1.7. Функции обработки ошибок
Многие функции библиотеки в случае ошибки или конца файла устанавливают индикаторы состояния. Эти индикаторы можно проверять и изменять. Кроме того, целое выражение errno
(объявленное в ) может содержать номер ошибки, который дает дополнительную информацию о последней из обнаруженных ошибок. void clearerr(FILE *stream);
clearerr
очищает индикаторы конца файла и ошибки потока stream. int feof(FILE *stream);
feof
возвращает ненулевое значение, если для потока stream установлен индикатор конца файла. int ferror(FILE *stream);
ferror
возвращает ненулевое значение, если для потока stream установлен индикатор ошибки. void perror(const char *s);
perror
(s) печатает s и зависимое от реализации сообщение об ошибке, соответствующее целому значению в errno, т. е. делает то же, что и обращение к функции fprintf видаfprintf(stderr, "%s: %s\n", s, "сообщение об ошибке")
См. strerror
в параграфе B3.B2. Проверки класса символа: ‹ctype.h›
Заголовочный файл
объявляет функции, предназначенные для проверок символов. Аргумент каждой из них имеет тип int и должен либо представлять собой EOF, либо быть значением unsigned char, приведенным к int; возвращаемое значение тоже имеет тип int. Функции возвращают ненулевое значение ("истина"), когда аргумент c удовлетворяет описанному условию или принадлежит указанному классу символов, и нуль в противном случае.