The OpenNET Project / Index page

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

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

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

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

  • BSD mandoc
     

    NAME

    
    
    sockatmark
    
     - determine whether the read pointer is at the OOB mark
    
     
    

    LIBRARY

    Lb libc
    
     
    

    SYNOPSIS

       #include <sys/socket.h>
    int sockatmark (int s);
     

    DESCRIPTION

    To find out if the read pointer is currently pointing at the mark in the data stream, the sockatmark ();
    function is provided. If sockatmark ();
    returns 1, the next read will return data after the mark. Otherwise (assuming out of band data has arrived), the next read will provide data sent by the client prior to transmission of the out of band signal. The routine used in the remote login process to flush output on receipt of an interrupt or quit signal is shown below. It reads the normal data up to the mark (to discard it), then reads the out-of-band byte.
    #include <sys/socket.h>
    ...
    oob()
    {
            int out = FWRITE, mark;
            char waste[BUFSIZ];
    
            /* flush local terminal output */
            ioctl(1, TIOCFLUSH, (char *)&out);
            for (;;) {
                    if ((mark = sockatmark(rem)) < 0) {
                            perror("sockatmark");
                            break;
                    }
                    if (mark)
                            break;
                    (void) read(rem, waste, sizeof (waste));
            }
            if (recv(rem, &mark, 1, MSG_OOB) < 0) {
                    perror("recv");
                    ...
            }
            ...
    }
    
     

    RETURN VALUES

    Upon successful completion, the sockatmark ();
    function returns the value 1 if the read pointer is pointing at the OOB mark, 0 if it is not. Otherwise the value -1 is returned and the global variable errno is set to indicate the error.  

    ERRORS

    The sockatmark ();
    call fails if:

    Bq Er EBADF
    The Fa s argument is not a valid descriptor.
    Bq Er ENOTTY
    The Fa s argument is a descriptor for a file, not a socket.

     

    SEE ALSO

    recv(2), send(2)  

    HISTORY

    The sockatmark ();
    function was introduced by St -p1003.1-2001 , to standardize the historical SIOCATMARK ioctl(2). The Er ENOTTY error instead of the usual Er ENOTSOCK is to match the historical behavior of SIOCATMARK


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    RETURN VALUES
    ERRORS
    SEE ALSO
    HISTORY


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




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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