The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

funopen (3)
  • >> funopen (3) ( FreeBSD man: Библиотечные вызовы )

  • BSD mandoc
     

    NAME

    
    
    funopen
    
     
    fropen
    
     
    fwopen
    
     - open a stream
    
     
    

    LIBRARY

    Lb libc
    
     
    

    SYNOPSIS

       #include <stdio.h>
    FILE * funopen (const void *cookie int (*readfn)(void *, char *, int) int (*writefn)(void *, const char *, int) fpos_t (*seekfn)(void *, fpos_t, int) int (*closefn)(void *));
    FILE * fropen (void *cookie int (*readfn)(void *, char *, int));
    FILE * fwopen (void *cookie int (*writefn)(void *, const char *, int));
     

    DESCRIPTION

    The funopen ();
    function associates a stream with up to four ``I/O functions '' Either Fa readfn or Fa writefn must be specified; the others can be given as an appropriately-typed NULL pointer. 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 close function is omitted, closing the stream will flush any buffered output and then succeed.

    The calling conventions of Fa readfn , Fa writefn , Fa seekfn and Fa closefn must match those, respectively, of read(2), write(2), lseek(2), and close(2) with the single exception that they are passed the Fa cookie argument specified to funopen ();
    in place of the traditional file descriptor argument.

    Read and write I/O functions are allowed to change the underlying buffer on fully buffered or line buffered streams by calling setvbuf(3). They are also not required to completely fill or empty the buffer. They are not, however, allowed to change streams from unbuffered to buffered or to change the state of the line buffering flag. They must also be prepared to have read or write calls occur on buffers other than the one most recently specified.

    All user I/O functions can report an error by returning -1. Additionally, all of the functions should set the external variable errno appropriately if an error occurs.

    An error on closefn ();
    does not keep the stream open.

    As a convenience, the include file    #include <stdio.h>
    defines the macros fropen ();
    and fwopen ();
    as calls to funopen ();
    with only a read or write function specified.  

    RETURN VALUES

    Upon successful completion, funopen ();
    returns a FILE pointer. Otherwise, NULL is returned and the global variable errno is set to indicate the error.  

    ERRORS

    Bq Er EINVAL
    The funopen ();
    function was called without either a read or write function. The funopen ();
    function may also fail and set errno for any of the errors specified for the routine malloc(3).

     

    SEE ALSO

    fcntl(2), open(2), fclose(3), fopen(3), fseek(3), setbuf(3)  

    HISTORY

    The funopen ();
    functions first appeared in BSD 4.4  

    BUGS

    The funopen ();
    function may not be portable to systems other than BSD .

    The funopen ();
    interface erroneously assumes that Vt fpos_t is an integral type; see fseek(3) for a discussion of this issue.


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    RETURN VALUES
    ERRORS
    SEE ALSO
    HISTORY
    BUGS


    Поиск по тексту MAN-ов: 




    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру