БИБЛИОТЕКА ВВОДА-ВЫВОДА

Программа, использующая перечисленные ниже функции ввода-вывода, должна включать в себя файл stdio h с помощью команды препроцессора

#include <stdio h>

файр stdio .h содержит:

1. Определение типа данных FILE

2. Определения параметров, используемых в макровызовах и вызовах библиотечных функций. Примеры

stdm - стандартный файл ввода;

stdout - стандартный файл вывода;

Библиотека ввода-вывода 61

stderr - файл вывода сообщений об ошибках;

NULL -нулевой (0) указатель;

EOF - конец файла.

Замечание. По умолчанию файлы stdm, stdout и stderr связываются с терминалом.

3. Макроопределения. pute() ferrorO getcQ с1еагегг() putchar() feof() getcharO fileno()

Замечание. Поток ввода-вывода идентифицируется указателем на переменную типа FILE. Средства буферизации включаются в поток как часть стандартного пакета ввода-вывода.

Доступ к файлам

fopen — открыть поток ввода-вывода.

Определение. FILE *fopen (filename, type)

char *filename, *type, freopen - закрыть поток stream и открыть файл newfile, используя описание этого потока. 

Определение: FILE *freopen (newfile, type, stream) char * newfile, *type, FILE * stream,

fdopen — связать поток с дескриптором файла, открытым функцией

Определение: FILE * fdopen (tildes, type) int fildes, char *type, open.

fclose - закрыть открытый поток ввода-вывода stream Определение: int fclose (stream)

FILE *stream,

fflush — записать символы из буфера в выходной поток stream Определение: int fflush (stream) FILE * stream,

fseek - изменить текущую позицию offset в файле stream. Определение: int fseek (stream, offset, ptrname) FILE * stream;

long offset;

int ptrname;

rewind - переставить указатель текущего байта в потоке на начало

файла.

Определение: void rewind (stream) FILE * stream,

setbuf - модифицировать буфер потока. Определение: void setbuf (stream, buf) FILE * stream;

char *buf;

setvbuf - модифицировать буфер потока.

Определение: int setvbuf (stream, buf, type, size) FILE *stream;

char *buf;

int type, size;

Доступ к каналам

pclose - закрыть поток, открытый функцией рореп. Определение: int pclose (stream) FILE * stream;

рореп - создать поток как канал обмена между процессами. Определение: FILE *popen (command, type) char *command, *type

Состояние файла

clearerr - обнулить признаки ошибки потока. Определение: void clearerr (stream) FILE *stream;

feof - проверить состояние конца файла в потоке. Определение: int feof (stream) FILE *stream,

ferror — проверить состояние ошибки в потоке. Определение: int terror (stream) FILE *stream;

fileno - связать дескриптор файла, открытого функцией open существующим потоком. Определение: int fileno (stream) FILE * stream;

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

fgets — прочитать строку из входного потока, включая символ новой строки.

Определение: char *fgets (s, n, stream) char *<;

int n, FILE *stream;

gets — прочитать строку из стандартного файла ввода stdm. Определение: char *gets(s) char *s;

fputs - записать строку в поток stream. Определение: int fputs (s, stream) char *s;

FILE *stream, puts — записать строку в стандартный файл вывода stdout. В конце

строки записывается символ новой строки. Определение: int puts (s) char *s;

Ввод символа

fgetc — прочитать следующий символ из входного потока stream Определение: int fgetc (stream) FILE •stream;

Замечание. Функции getc(), getchar(), ungetc() являются макроопределениями.

getc - прочитать следующий символ из входного потока.

Определение: int getc (stream)

FILE *stream, getchar - прочитай, следующий символ из стандартного файла ввода.

Определение: int getchar ()

ungetc - вернуть символ во входной поток. Определение: int ungetc (с, stream) int с, FILE * stream;

Вывод символа

fputc — записать символ в поток. Определение: int fputc (с, stream) int с;

FILE * stream;

Замечание. Функции putc() и putchar() являются макроопределениями.

putc - записать символ в поток. Определение: int putc (с, stream) int с, FILE *stream,

putchar - записать символ в стандартный файл вьшода. Определение: int putchar (с) int с;

Блочный ввод-вывод

fread - прочитать из входного потока определенное число байт

(символов). Определение: int fread (ptr, size, nitems, stream) char *ptr, int size, nitems, FILE *stream,

fwrite - записать определенное число байт в выходной поток. Определение: int fwrite (ptr, size, nitems, stream) char *ptr;

int size, nitems;

FILE *stream

Выполнение команд языка shell

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

#include <stdio.h>

system - выполнить команду языка shell, описанную как строка string.

Определение: int system (string) char * string

Временные файлы

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

tmpnam — создать временное имя файла.

Определение: char *tmpnam (s) char *s;

tempnam - создать временное имя файла, используя каталог dir и

префикс файла pfx.

Определение: char *tempnam (dir, pfx) char *dir, *pfx,

mktemp - создать уникальное имя файла по шаблону, записанному

в строке template.

Определение: char *mktemp (template) char *template;

tmpfile - создать временный файл.

Определение: FILE *tmpfile ()

Обработка строк

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

#mclude (string.h)

strcat - сцепить две строки. Определение: char *strcat (si, s2) char *sl, *s2;

strncat - сцепить две строки, причем из второй строки копировать

не более п символов. Определение: char *stmcat (si, s2, n) char *sl, *s2;

int n;

strcmp - сравнить две строки в лексикографическом порядке. Определение: int strcmp (si, s2) char *sl, *s2;

stmcmp — сравнить первые n символов двух строк. Определение: mt strncmp (si, s2, n) char *sl, *s2;

int n;

strcpy - копировать строку s2 в строку si. Определение: char * strcpy (si, s2) char *sl, s2;

stmcpy - копировать не более n символов строки s2. Определение: char *strncpy (si, s2, n) char *sl, *s2;

int n;

strlen - определить длину строки (число символов без завершающего нулевого символа):

Определение: int strlen (s) char *s;

strchr - найти в строке первое вхождение символа с. Определение: char *strchr (s„c) char *s;

int c;

strrchr — найти в строке последнее вхождение символа с. Определение: char *strrchr (s, с) char *s;

int с;

strpbrk — найти в строке si любой из множества символов, входящих в строку s2. Определение: char *strpbrk (si, s2) char *sl, *s2;

strspn — определить длину отрезка строки si, содержащего символы

из множества символов, входящих в строку s2. Определение: int strspn (si, s2) char *sl, *s2;

strcspn - определить длину отрезка строки si, содержащего символы, не входящие в множество символов строки s2. Определение: int strcspn (si, s2)

char *sl, *s2, strtok — выделить из строки si лексемы, разделенные любым из

множества символов, входящих в строку s2. Определение: char *strtok (si, s2) char *sl, *s2;