GETSERVENT(3) 1990 GETSERVENT(3) NNAAMMEE getservent, getservbyport, getservbyname, setservent, endservent - get service entry SSYYNNOOPPSSIISS ##iinncclluuddee <<nneettddbb..hh>> ssttrruucctt sseerrvveenntt **ggeettsseerrvveenntt(()) ssttrruucctt sseerrvveenntt **ggeettsseerrvvbbyynnaammee((nnaammee,, pprroottoo)) cchhaarr **nnaammee,, **pprroottoo;; ssttrruucctt sseerrvveenntt **ggeettsseerrvvbbyyppoorrtt((ppoorrtt,, pprroottoo)) iinntt ppoorrtt;; cchhaarr **pprroottoo;; sseettsseerrvveenntt((ssttaayyooppeenn)) iinntt ssttaayyooppeenn eennddsseerrvveenntt(()) DDEESSCCRRIIPPTTIIOONN _G_e_t_s_e_r_v_e_n_t, _g_e_t_s_e_r_v_b_y_n_a_m_e, and _g_e_t_s_e_r_v_b_y_p_o_r_t each return a pointer to an object with the following structure containing the broken-out fields of a line in the network services data base, /_e_t_c/_s_e_r_v_i_c_e_s. struct servent { char *s_name; /* official name of service */ char **s_aliases; /* alias list */ int s_port; /* port service resides at */ char *s_proto; /* protocol to use */ }; The members of this structure are: s_name The official name of the service. s_aliases A zero terminated list of alternate names for the service. s_port The port number at which the service resides. Port numbers are returned in network byte order. s_proto The name of the protocol to use when contacting the service. _G_e_t_s_e_r_v_e_n_t reads the next line of the file, opening the file if necessary. _S_e_t_s_e_r_v_e_n_t opens and rewinds the file. If the _s_t_a_y_o_p_e_n flag is non-zero, the net data base will not be closed after each call to _g_e_t_s_e_r_v_b_y_n_a_m_e or .IR getservbyport . Printed 7/27/90 June 1 GETSERVENT(3) 1990 GETSERVENT(3) _E_n_d_s_e_r_v_e_n_t closes the file. _G_e_t_s_e_r_v_b_y_n_a_m_e and _g_e_t_s_e_r_v_b_y_p_o_r_t sequentially search from the beginning of the file until a matching protocol name or port number is found, or until EOF is encountered. If a protocol name is also supplied (non-NULL), searches must also match the protocol. FFIILLEESS /etc/services SSEEEE AALLSSOO getprotoent(3), services(5) DDIIAAGGNNOOSSTTIICCSS Null pointer (0) returned on EOF or error. BBUUGGSS All information is contained in a static area so it must be copied if it is to be saved. Expecting port numbers to fit in a 32 bit quantity is probably naive. Printed 7/27/90 June 2