|
NAMEfopencookie —
open a stream
LIBRARYStandard C Library (libc, -lc)SYNOPSIS#include <stdio.h>
typedef ssize_t
typedef ssize_t
typedef int
typedef int
typedef struct { cookie_read_function_t *read; cookie_write_function_t *write; cookie_seek_function_t *seek; cookie_close_function_t *close; } cookie_io_functions_t; FILE * fopencookie (void
*cookie, const char
*mode,
cookie_io_functions_t
io_funcs);
DESCRIPTIONThefopencookie function associates a stream with up to
four “I/O functions”. These I/O
functions will be used to read, write, seek and close the new stream.
In general, omitting a function means that any attempt to perform the associated operation on the resulting stream will fail. If the write function is omitted, data written to the stream is discarded. If the close function is omitted, closing the stream will flush any buffered output and then succeed. The calling conventions of read,
write, and close must match
those, respectively, of
read(2),
write(2),
and
close(2)
with the single exception that they are passed the
cookie argument specified to
RETURN VALUESUpon successful completion,fopencookie returns a
FILE pointer. Otherwise, NULL
is returned and the global variable errno is set to
indicate the error.
ERRORSSEE ALSOfcntl(2), open(2), fclose(3), fopen(3), fseek(3), funopen(3)HISTORYThefunopen () functions first appeared in
4.4BSD. The fopencookie
function first appeared in FreeBSD 11.
BUGSThefopencookie function is a nonstandard glibc
extension and may not be portable to systems other than
FreeBSD and Linux.
Visit the GSP FreeBSD Man Page Interface. |