unlocked_stdio

UNLOCKED_STDIO(3)        Руководство программиста Linux        UNLOCKED_STDIO(3)



ИМЯ
       getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked -
       неблокирующие функции стандартного ввода-вывода

ОБЗОР
       #include <stdio.h>

       int getc_unlocked(FILE *stream);
       int getchar_unlocked(void);
       int putc_unlocked(int c, FILE *stream);
       int putchar_unlocked(int c);

       void clearerr_unlocked(FILE *stream);
       int feof_unlocked(FILE *stream);
       int ferror_unlocked(FILE *stream);
       int fileno_unlocked(FILE *stream);
       int fflush_unlocked(FILE *stream);
       int fgetc_unlocked(FILE *stream);
       int fputc_unlocked(int c, FILE *stream);
       size_t fread_unlocked(void *ptr, size_t size, size_t n,
                             FILE *stream);
       size_t fwrite_unlocked(const void *ptr, size_t size, size_t n,
                             FILE *stream);

       char *fgets_unlocked(char *s, int n, FILE *stream);
       int fputs_unlocked(const char *s, FILE *stream);

       #include <wchar.h>

       wint_t getwc_unlocked(FILE *stream);
       wint_t getwchar_unlocked(void);
       wint_t fgetwc_unlocked(FILE *stream);
       wint_t fputwc_unlocked(wchar_t wc, FILE *stream);
       wint_t putwc_unlocked(wchar_t wc, FILE *stream);
       wint_t putwchar_unlocked(wchar_t wc);
       wchar_t *fgetws_unlocked(wchar_t *ws, int n, FILE *stream);
       int fputws_unlocked(const wchar_t *ws, FILE *stream);

   Требования макроса тестирования свойств для glibc (см.
   feature_test_macros(7)):

       getc_unlocked(), getchar_unlocked(), putc_unlocked(), putchar_unlocked():
           _POSIX_C_SOURCE
               || /* в версиях glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

       clearerr_unlocked(), feof_unlocked(), ferror_unlocked(),
       fileno_unlocked(), fflush_unlocked(), fgetc_unlocked(), fputc_unlocked(),
       fread_unlocked(), fwrite_unlocked():
           /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
               || /* в версиях glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

       fgets_unlocked(), fputs_unlocked(), getwc_unlocked(),
       getwchar_unlocked(), fgetwc_unlocked(), fputwc_unlocked(),
       putwchar_unlocked(), fgetws_unlocked(), fputws_unlocked():
           _GNU_SOURCE

ОПИСАНИЕ
       Все эти функции ведут себя так же, как и их аналоги без суффикса
       «_unlocked», за исключением того, что они не используют блокировку (они
       не устанавливают блокировки самостоятельно и не проверяют наличие других
       блокировок) и, таким образом, не являются нитебезопасными. Смотрите
       flockfile(3).

АТРИБУТЫ
       Описание терминов данного раздела смотрите в attributes(7).

       ┌─────────────────────┬──────────────────────┬───────────────────────┐
       │Интерфейс            Атрибут              Значение              │
       ├─────────────────────┼──────────────────────┼───────────────────────┤
       │getc_unlocked(),     │ Безвредность в нитях │ MT-Safe race:stream   │
       │putc_unlocked(),     │                      │                       │
       │clearerr_unlocked(), │                      │                       │
       │fflush_unlocked(),   │                      │                       │
       │fgetc_unlocked(),    │                      │                       │
       │fputc_unlocked(),    │                      │                       │
       │fread_unlocked(),    │                      │                       │
       │fwrite_unlocked(),   │                      │                       │
       │fgets_unlocked(),    │                      │                       │
       │fputs_unlocked(),    │                      │                       │
       │getwc_unlocked(),    │                      │                       │
       │fgetwc_unlocked(),   │                      │                       │
       │fputwc_unlocked(),   │                      │                       │
       │putwc_unlocked(),    │                      │                       │
       │fgetws_unlocked(),   │                      │                       │
       │fputws_unlocked()    │                      │                       │
       ├─────────────────────┼──────────────────────┼───────────────────────┤
       │getchar_unlocked(),  │ Безвредность в нитях │ MT-Unsafe race:stdin  │
       │getwchar_unlocked()  │                      │                       │
       ├─────────────────────┼──────────────────────┼───────────────────────┤
       │putchar_unlocked(),  │ Безвредность в нитях │ MT-Unsafe race:stdout │
       │putwchar_unlocked()  │                      │                       │
       ├─────────────────────┼──────────────────────┼───────────────────────┤
       │feof_unlocked(),     │ Безвредность в нитях │ MT-Safe               │
       │ferror_unlocked(),   │                      │                       │
       │fileno_unlocked()    │                      │                       │
       └─────────────────────┴──────────────────────┴───────────────────────┘
СООТВЕТСТВИЕ СТАНДАРТАМ
       Четыре функции getc_unlocked(), getchar_unlocked(), putc_unlocked() и
       putchar_unlocked() являются частью стандартов POSIX.1-2001 и
       POSIX.1-2008.

       В некоторых систем UNIX и последних версиях glibc встречаются
       нестандартные варианты функций *_unlocked(). Вероятно, не стоит их
       использовать.

СМОТРИТЕ ТАКЖЕ
       flockfile(3), stdio(3)



                                   2016-03-15                  UNLOCKED_STDIO(3)