Hash :
c36a0f21
Author :
Date :
2024-10-27T17:01:29
doc: Add a module index. * doc/Makefile (undocumented-modules.texi): New rule. (%.info, %.html, %.dvi, %.pdf): Depend on undocumented-modules.texi. (mostlyclean): Remove also *.m and *.tmp. (force): New rule. * doc/*.texi: Add module index entries. * doc/*/*.texi: Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
@node read
@subsection @code{read}
@findex read
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/read.html}
Gnulib module: read, stdio, nonblocking
@mindex read
@mindex stdio
@mindex nonblocking
Portability problems fixed by Gnulib module @code{read}:
@itemize
@item
This function is declared in a different header file (namely, @code{<io.h>})
on some platforms:
mingw, MSVC 14.
@item
This function crashes when invoked with invalid arguments on some platforms:
MSVC 14.
@end itemize
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
@item
When reading from a non-blocking pipe whose buffer is empty, this function
fails with @code{errno} being set to @code{EINVAL} instead of @code{EAGAIN} on
some platforms:
mingw, MSVC 14.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function may fail with error @code{EINTR}, even in programs that don't
install any signal handlers, on some platforms:
macOS 14.
@end itemize
@mindex safe-read
For handling @code{EINTR}, Gnulib provides a module @samp{safe-read} with a
function @code{safe_read}.