curl_multi_fdset man page on Archlinux

Man page or keyword search:  
man Server   11224 pages
apropos Keyword Search (all sections)
Output format
Archlinux logo
[printable version]

curl_multi_fdset(3)		libcurl Manual		   curl_multi_fdset(3)

NAME
       curl_multi_fdset	 -  extracts  file descriptor information from a multi
       handle

SYNOPSIS
       #include <curl/curl.h>

       CURLMcode curl_multi_fdset(CURLM *multi_handle,
				  fd_set *read_fd_set,
				  fd_set *write_fd_set,
				  fd_set *exc_fd_set,
				  int *max_fd);

DESCRIPTION
       This  function  extracts	 file  descriptor  information	from  a	 given
       multi_handle.  libcurl returns its fd_set sets. The application can use
       these to select() on, but be sure to FD_ZERO them before	 calling  this
       function	 as  curl_multi_fdset(3)  only	adds  its  own descriptors, it
       doesn't zero or otherwise remove any others. The	 curl_multi_perform(3)
       function	 should	 be  called as soon as one of them is ready to be read
       from or written to.

       If no file descriptors are set by libcurl, max_fd will contain -1  when
       this  function returns. Otherwise it will contain the higher descriptor
       number libcurl set. When libcurl returns -1 in max_fd,  it  is  because
       libcurl	currently does something that isn't possible for your applica‐
       tion to monitor with a socket and unfortunately you can then  not  know
       exactly	when  the  current  action  is	completed using select(). When
       max_fd returns with -1, you need to wait a while and then  proceed  and
       call  curl_multi_perform	 anyway. How long to wait? I would suggest 100
       milliseconds at least, but you may want to test it out in your own par‐
       ticular conditions to find a suitable value.

       When  doing  select(),  you should use curl_multi_timeout to figure out
       how long to wait for action. Call curl_multi_perform even if no	activ‐
       ity has been seen on the fd_sets after the timeout expires as otherwise
       internal retries and timeouts may not work as you'd think and want.

       If one of the sockets used by libcurl happens to be  larger  than  what
       can  be	set  in	 an fd_set, which on POSIX systems means that the file
       descriptor is larger than FD_SETSIZE, then libcurl will try to not  set
       it.  Setting a too large file descriptor in an fd_set implies an out of
       bounds write which can cause crashes, or worse. The effect of NOT stor‐
       ing  it	will possibly save you from the crash, but will make your pro‐
       gram NOT wait for sockets it should wait for...

RETURN VALUE
       CURLMcode  type,	 general  libcurl  multi  interface  error  code.  See
       libcurl-errors(3)

SEE ALSO
       curl_multi_cleanup(3),	 curl_multi_init(3),	curl_multi_timeout(3),
       curl_multi_perform(3)

libcurl 7.16.0			  2 Jan 2006		   curl_multi_fdset(3)
[top]

List of man pages available for Archlinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net