summaryrefslogtreecommitdiffstats
path: root/man3/fopencookie.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/fopencookie.3')
-rw-r--r--man3/fopencookie.325
1 files changed, 12 insertions, 13 deletions
diff --git a/man3/fopencookie.3 b/man3/fopencookie.3
index 61f77bc..5d5d1d3 100644
--- a/man3/fopencookie.3
+++ b/man3/fopencookie.3
@@ -4,9 +4,9 @@
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
-.TH fopencookie 3 2023-07-20 "Linux man-pages 6.05.01"
+.TH fopencookie 3 2023-12-29 "Linux man-pages 6.7"
.SH NAME
-fopencookie \- opening a custom stream
+fopencookie \- open a custom stream
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
@@ -15,7 +15,7 @@ Standard C library
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
.B #define _FILE_OFFSET_BITS 64
.B #include <stdio.h>
-.PP
+.P
.BI "FILE *fopencookie(void *restrict " cookie ", const char *restrict " mode ,
.BI " cookie_io_functions_t " io_funcs );
.fi
@@ -31,7 +31,7 @@ is used to implement
.BR fmemopen (3),
which provides a stream interface to data that is stored in a
buffer in memory.
-.PP
+.P
In order to create a custom stream the programmer must:
.IP \[bu] 3
Implement four "hook" functions that are used internally by the
@@ -52,7 +52,7 @@ Call
.BR fopencookie ()
to open a new stream and associate the cookie and hook functions
with that stream.
-.PP
+.P
The
.BR fopencookie ()
function serves a purpose similar to
@@ -60,14 +60,14 @@ function serves a purpose similar to
it opens a new stream and returns a pointer to a
.I FILE
object that is used to operate on that stream.
-.PP
+.P
The
.I cookie
argument is a pointer to the caller's cookie structure
that is to be associated with the new stream.
This pointer is supplied as the first argument when the standard I/O
library invokes any of the hook functions described below.
-.PP
+.P
The
.I mode
argument serves the same purpose as for
@@ -83,13 +83,13 @@ and
See
.BR fopen (3)
for details.
-.PP
+.P
The
.I io_funcs
argument is a structure that contains four fields pointing to the
programmer-defined hook functions that are used to implement this stream.
The structure is defined as follows
-.PP
+.P
.in +4n
.EX
typedef struct {
@@ -100,7 +100,7 @@ typedef struct {
} cookie_io_functions_t;
.EE
.in
-.PP
+.P
The four fields are as follows:
.TP
.I cookie_read_function_t *read
@@ -257,7 +257,6 @@ T{
.BR fopencookie ()
T} Thread safety MT-Safe
.TE
-.sp 1
.SH STANDARDS
GNU.
.SH EXAMPLES
@@ -269,7 +268,7 @@ The program writes its command-line arguments to the stream,
and then seeks through the stream reading two out of every
five characters and writing them to standard output.
The following shell session demonstrates the use of the program:
-.PP
+.P
.in +4n
.EX
.RB "$" " ./a.out \[aq]hello world\[aq]"
@@ -279,7 +278,7 @@ The following shell session demonstrates the use of the program:
Reached end of file
.EE
.in
-.PP
+.P
Note that a more general version of the program below
could be improved to more robustly handle various error situations
(e.g., opening a stream with a cookie that already has an open stream;