getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - Fonctions
stdio non bloquantes
Bibliothèque C standard (
libc,
-lc)
#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[restrict .size * .n],
size_t size, size_t n,
FILE *restrict stream);
size_t fwrite_unlocked(const void ptr[restrict .size * .n],
size_t size, size_t n,
FILE *restrict stream);
char *fgets_unlocked(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(wchar_t ws[restrict .n], int n,
FILE *restrict stream);
int fputws_unlocked(const wchar_t *restrict ws,
FILE *restrict stream);
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
Toutes ces fonctions se comportent de la même façon que leurs
homonymes sans le suffixe « _unlocked », si ce
n'est qu'elles n'utilisent pas de verrouillage (elles ne positionnent pas les
verrous elles-mêmes, et ne testent pas la présence
éventuelle de verrous positionnés par les autres) et ne sont
donc pas adaptées à un contexte multithread. Consultez
flockfile(3).
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
getc_unlocked(), 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() |
Sécurité des threads |
MT-Safe race:stream |
getchar_unlocked(), getwchar_unlocked() |
Sécurité des threads |
MT-Unsafe race:stdin |
putchar_unlocked(), putwchar_unlocked() |
Sécurité des threads |
MT-Unsafe race:stdout |
feof_unlocked(), ferror_unlocked(),
fileno_unlocked() |
Sécurité des threads |
MT-Safe |
Les quatre fonctions
getc_unlocked(),
getchar_unlocked(),
putc_unlocked() est
putchar_unlocked() apparaissent dans
POSIX.1-2001 et POSIX.1-2008.
Les variantes
*_unlocked() non standard sont présentes sur
quelques systèmes UNIX et sont disponibles dans les versions
récentes de la glibc. Elles ne devraient sans doute pas être
utilisées.
flockfile(3),
stdio(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Jean-Pierre
Giraud <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]