# unlocked_stdio

## NAME



           getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked -
           nonlocking stdio functions
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#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 *_Nullable** _stream_**);**
    
           **int fgetc_unlocked(FILE ***_stream_**);**
           **int fputc_unlocked(int** _c_**, FILE ***_stream_**);**
    
           **size_t fread_unlocked(** size_t size, size_t n;
                                 **void** _ptr_**[restrict** _size_ *****_n_**],**
                                 **size_t** _size_**, size_t** _n_**,**
                                 **FILE *restrict** _stream_**);**
           **size_t fwrite_unlocked(** size_t size, size_t n;
                                 **const void** _ptr_**[restrict** _size_ *****_n_**],**
                                 **size_t** _size_**, size_t** _n_**,**
                                 **FILE *restrict** _stream_**);**
    
           **char *fgets_unlocked(** int n;
                                 **char** _s_**[restrict** _n_**], int** _n_**, FILE *restrict** _stream_**);**
           **int fputs_unlocked(const char *restrict** _s_**, FILE *restrict** _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(** int n;
                                 **wchar_t** _ws_**[restrict** _n_**], int** _n_**,**
                                 **FILE *restrict** _stream_**);**
           **int fputws_unlocked(const wchar_t *restrict** _ws_**,**
                                 **FILE *restrict** _stream_**);**
    
       Feature Test Macro Requirements for glibc (see
       feature_test_macros(7)):
    
           **getc_unlocked**(), **getchar_unlocked**(), **putc_unlocked**(),
           **putchar_unlocked**():
               /* glibc >= 2.24: */ _POSIX_C_SOURCE >= 199309L
                   || /* glibc <= 2.23: */ _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
    


## DESCRIPTION



           Each of these functions has the same behavior as its counterpart
           without the "_unlocked" suffix, except that they do not use
           locking (they do not set locks themselves, and do not test for the
           presence of locks set by others) and hence are thread-unsafe.  See
           flockfile(3).
    


## ATTRIBUTES



           For an explanation of the terms used in this section, see
           attributes(7).
           ┌──────────────────────┬───────────────┬─────────────────────────┐
           │ **Interface** │ **Attribute** │ **Value** │
           ├──────────────────────┼───────────────┼─────────────────────────┤
           │ **getc_unlocked**(),     │ Thread safety │ 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**(),  │ Thread safety │ MT-Unsafe race:stdin    │
           │ **getwchar_unlocked**()  │               │                         │
           ├──────────────────────┼───────────────┼─────────────────────────┤
           │ **putchar_unlocked**(),  │ Thread safety │ MT-Unsafe race:stdout   │
           │ **putwchar_unlocked**()  │               │                         │
           ├──────────────────────┼───────────────┼─────────────────────────┤
           │ **feof_unlocked**(),     │ Thread safety │ MT-Safe                 │
           │ **ferror_unlocked**(),   │               │                         │
           │ **fileno_unlocked**()    │               │                         │
           └──────────────────────┴───────────────┴─────────────────────────┘
    


## STANDARDS



           **getc_unlocked**()
           **getchar_unlocked**()
           **putc_unlocked**()
           **putchar_unlocked**()
                  POSIX.1-2008.
    
           Others:
                  None.
    


* * *