Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ares_fds(3) [debian man page]

ARES_FDS(3)						     Library Functions Manual						       ARES_FDS(3)

NAME
ares_fds - Get file descriptors to select on for name service SYNOPSIS
#include <ares.h> int ares_fds(ares_channel channel, fd_set *read_fds, fd_set *write_fds) DESCRIPTION
The ares_fds function retrieves the set of file descriptors which the calling application should select on for reading and writing for the processing of name service queries pending on the name service channel identified by channel. File descriptors will be set in the file descriptor sets pointed to by read_fds and write_fds as appropriate. File descriptors already set in read_fds and write_fds will remain set; initialization of the file descriptor sets (using FD_ZERO) is the responsibility of the caller. RETURN VALUES
ares_fds returns one greater than the number of the highest socket set in either read_fds or write_fds. If no queries are active, ares_fds will return 0. SEE ALSO
ares_timeout(3), ares_process(3) AUTHOR
Greg Hudson, MIT Information Systems Copyright 1998 by the Massachusetts Institute of Technology. 23 July 1998 ARES_FDS(3)

Check Out this Related Man Page

ARES_PROCESS(3) 					     Library Functions Manual						   ARES_PROCESS(3)

NAME
ares_process - Process events for name resolution SYNOPSIS
#include <ares.h> void ares_process(ares_channel channel, fd_set *read_fds, fd_set *write_fds) void ares_process_fd(ares_channel channel, ares_socket_t read_fd, ares_socket_t write_fd) DESCRIPTION
The ares_process(3) function handles input/output events and timeouts associated with queries pending on the name service channel identi- fied by channel. The file descriptor sets pointed to by read_fds and write_fds should have file descriptors set in them according to whether the file descriptors specified by ares_fds(3) are ready for reading and writing. (The easiest way to determine this information is to invoke select with a timeout no greater than the timeout given by ares_timeout(3) ). The ares_process function will invoke callbacks for pending queries if they complete successfully or fail. ares_process_fd(3) works the same way but acts and operates only on the specific file descriptors (sockets) you pass in to the function. Use ARES_SOCKET_BAD for "no action". This function is of course provided to allow users of c-ares to void select() in their applications and within c-ares. EXAMPLE The following code fragment waits for all pending queries on a channel to complete: int nfds, count; fd_set readers, writers; struct timeval tv, *tvp; while (1) { FD_ZERO(&readers); FD_ZERO(&writers); nfds = ares_fds(channel, &readers, &writers); if (nfds == 0) break; tvp = ares_timeout(channel, NULL, &tv); count = select(nfds, &readers, &writers, NULL, tvp); ares_process(channel, &readers, &writers); } SEE ALSO
ares_fds(3), ares_timeout(3) AUTHOR
Greg Hudson, MIT Information Systems Copyright 1998 by the Massachusetts Institute of Technology. 25 July 1998 ARES_PROCESS(3)
Man Page