mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

STDIO(3S)                                             STDIO(3S)

НАЗВАНИЕ 
        stdio - стандартный пакет буферизованного ввода/вывода

СИНТАКСИС 
        #include 
        
        FILE *stdin, *stdout, *stderr;

ОПИСАНИЕ 
        Макросы и функции, относящиеся к разделу 3S этого Спра-
        вочника, предоставляют пользователю эффективные средст-
        ва буферизованного  ввода/вывода.  Макросы  getc(3S)  и
        putc(3S) служат  для  быстрого  ввода/вывода  символов.
        Макросы getchar и  putchar  и  функции  более  высокого
        уровня fgetc,  fgets,  fprintf,  fputc,  fputs,  fread,
        fscanf, fwrite, gets, getw, printf, puts, putw и  scanf
        ведут себя так, как если бы  они  использовали  getc  и
        putc. Обращения к макросам и функциям из данного пакета
        можно чередовать произвольным образом.

        Файл и ассоциированный с ним механизм буферизации назы-
        ваются  потоком. Поток описывается как указатель на пе-
        ременную типа FILE. Функция fopen(3S) создает описатель
        потока и возвращает указатель на него.  Этот  указатель
        идентифицирует  поток  во  всех  последующих операциях.
        Обычно имеются три открытых потока с постоянными указа-
        телями, они описаны во  включаемом  файле    и
        связаны со стандартными открытыми файлами:

             stdin   стандартный ввод
             stdout  стандартный вывод
             stderr  стандартный протокол

        Константа NULL (0) обозначает пустой указатель.

        Целая константа EOF  (-1)  возвращается  по  достижении
        конца файла или в случае ошибки большинством  из  цело-
        численных функций, работающих с потоками (для получения
        детальной информации см. описания отдельных функций).

        Целая  константа  BUFSIZ  специфицирует размер буферов,
        используемых в конкретной реализации.

        Любая программа, использующая данный пакет  ввода/выво-
        да, должна включать файл соответствующих макроопределе-
        ний следующим образом:

             #include 

        Функции и константы, упоминаемые в разделе 3S этого ру-
        ководства, описаны в файле  и не требуют даль-
        нейшего описания. Константы и следующие "функции"  реа-
        лизованы как макросы (переопределение этих  имен  опас-
        но):  getc,  getchar,  putc,  putchar,  ferror,   feof,
        clearerr и fileno.

        Потоки вывода, за  исключением  стандартного  протокола
        stderr, по умолчанию буферизуются, если вывод  произво-
        дится в файл, и буферизуется построчно, если вывод про-
        изводится на терминал. Стандартный протокол  stderr  по
        умолчанию не  буферизуется,  но  использование  функции
        freopen [см. fopen(3S)] приводит к тому, что  стандарт-
        ный протокол становится буферизованным или буферизован-
        ным построчно. Когда поток вывода не буферизован,  дан-
        ные выводятся в нужный файл или  на  терминал  по  мере
        поступления запросов на запись; когда поток вывода  бу-
        феризован, байты накапливаются и  записываются  блоком.
        Когда поток вывода буферизован построчно, каждая  выво-
        димая строка выводится  на  терминал  после  заполнения
        строки (то есть как только  выводится  символ  перевода
        строки или поступает запрос на ввод с терминала). Функ-
        ции setbuf или setvbuf [см. setbuf(3S)] могут использо-
        ваться для изменения стратегии буферизации потоков.

СМ. ТАКЖЕ 
        open(2),   close(2),   lseek(2),   pipe(2),    read(2),
        write(2),   ctermid(3S),    cuserid(3S),    fclose(3S),
        ferror(3S), fopen(3S), fread(3S), fseek(3S),  getc(3S),
        gets(3S), popen(3S),  printf(3S),  putc(3S),  puts(3S),
        scanf(3S),   setbuf(3S),    system(3S),    tmpfile(3S),
        tmpnam(3S), ungetc(3S).

ДИАГНОСТИКА 
        Некорректный указатель на поток обычно приводит к тяже-
        лым последствиям, возможно, к терминированию программы.
        Описания конкретных функций включают  разъяснения  воз-
        можных ошибочных ситуаций.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк