![]() |
![]() |
![]() |
![]() |
![]() |
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Get information that select() needs for SNMP
#include <sys/types.h>
#include <sys/select.h>
#include <sys/time.h>
#include <snmp/snmp_api.h>
int snmp_select_info( int * numfds,
struct fd_set * fdset,
struct timeval * timeout,
int * block );
You must provide the timeout, even if block is 1 (see below).
libsnmp
Use the -l snmp option to qcc to link against this library.
The snmp_select_info() function is used to return information about what SNMP requires from a select() call.
To have SNMP transactions occur asynchronously, you can invoke the functions snmp_select_info(), snmp_timeout(), and snmp_read() in conjunction with the system call select(). For more information, see select().
For asynchronous transactions, invoke snmp_select_info() with the information you would have passed to select() in the absence of SNMP. The snmp_select_info() function modifies the information, which is subsequently passed to select().
| Parameters to select(): | Corresponding parameters to snmp_select_info(): |
|---|---|
| nfds | numfds |
| readfds | fdset |
| timeout | timeout -- must point to an allocated (but not necessarily initialized) timeval structure. |
The following code segment shows how to use these SNMP functions in conjunction with select():
FD_ZERO(&fdset);
numfds=sd+1;
FD_SET(sd,&fdset);
block=0;
tvp=&timeout;
timerclear(tvp);
tvp->tv_sec = 5;
snmp_select_info(&numfds, &fdset, tvp, &block);
if(block==1)
{
tvp = NULL;
}
count = select(numfds, &fdset, 0, 0, tvp);
if(count==0)
snmp_timeout();
if(count>0)
snmp_read(&fdset);
The number of open sockets (i.e. the number of open sessions).
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | No |
| Thread | No |
select(), snmp_close(), snmp_open(), snmp_pdu, snmp_read(), snmp_select_info(), snmp_send(), snmp_session, snmp_timeout()
RFC 1157, FAQ in Internet newsgroup comp.protocols.snmp
Marshall T. Rose, The Simple Book: An Introduction to Internet Management, Revised 2nd ed. (Prentice-Hall, 1996, ISBN 0-13-451659-1)
![]() |
![]() |
![]() |
![]() |