curl_multi_fdset.html 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <html><head>
  2. <title>curl_multi_fdset man page</title>
  3. <meta name="generator" content="roffit 0.7">
  4. <STYLE type="text/css">
  5. P.level0 {
  6. padding-left: 2em;
  7. }
  8. P.level1 {
  9. padding-left: 4em;
  10. }
  11. P.level2 {
  12. padding-left: 6em;
  13. }
  14. span.emphasis {
  15. font-style: italic;
  16. }
  17. span.bold {
  18. font-weight: bold;
  19. }
  20. span.manpage {
  21. font-weight: bold;
  22. }
  23. h2.nroffsh {
  24. background-color: #e0e0e0;
  25. }
  26. span.nroffip {
  27. font-weight: bold;
  28. font-size: 120%;
  29. font-family: monospace;
  30. }
  31. p.roffit {
  32. text-align: center;
  33. font-size: 80%;
  34. }
  35. </STYLE>
  36. </head><body>
  37. <p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
  38. <p class="level0">curl_multi_fdset - extracts file descriptor information from a multi handle <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
  39. <p class="level0"><pre>
  40. <p class="level0">#include &lt;curl/curl.h&gt;
  41. <p class="level0">CURLMcode curl_multi_fdset(CURLM *multi_handle,
  42. &nbsp; fd_set *read_fd_set,
  43. &nbsp; fd_set *write_fd_set,
  44. &nbsp; fd_set *exc_fd_set,
  45. &nbsp; int *max_fd);
  46. <p class="level0"></pre>
  47. <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
  48. <p class="level0">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 <a class="emphasis" href="./curl_multi_fdset.html">curl_multi_fdset(3)</a> only adds its own descriptors it doesn't zero or otherwise remove any other. The <a class="emphasis" href="./curl_multi_perform.html">curl_multi_perform(3)</a> function should be called as soon as one of them are ready to be read from or written to.
  49. <p class="level0">If no file descriptors are set by libcurl, <span Class="emphasis">max_fd</span> will contain -1 when this function returns. Otherwise it will contain the higher descriptor number libcurl set.
  50. <p class="level0">You should also be aware that when doing select(), you should consider using a rather small (single-digit number of seconds) timeout and call <span Class="emphasis">curl_multi_perform</span> regularly - even if no activity has been seen on the fd_sets - as otherwise libcurl-internal retries and timeouts may not work as you'd think and want.
  51. <p class="level0">Starting with libcurl 7.16.0, you should use <span Class="bold">curl_multi_timeout</span> to figure out how long to wait for action. <a name="RETURN"></a><h2 class="nroffsh">RETURN VALUE</h2>
  52. <p class="level0">CURLMcode type, general libcurl multi interface error code. See <span Class="emphasis">libcurl-errors(3)</span> <a name="SEE"></a><h2 class="nroffsh">SEE ALSO</h2>
  53. <p class="level0"><a class="manpage" href="./curl_multi_cleanup.html">curl_multi_cleanup (3)</a> <a class="manpage" href="./curl_multi_init.html"> curl_multi_init (3)</a> <span Class="manpage"> </span> <a class="manpage" href="./curl_multi_timeout.html">curl_multi_timeout (3) </a> <p class="roffit">
  54. This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
  55. </body></html>