Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETPROTOENT(3)	       FreeBSD Library Functions Manual		GETPROTOENT(3)

NAME
     getprotoent, getprotoent_r, getprotobynumber, getprotobynumber_r,
     getprotobyname, getprotobyname_r, setprotoent, setprotoent_r,
     endprotoent, endprotoent_r	-- get protocol	entry

SYNOPSIS
     #include <netdb.h>

     struct protoent *
     getprotoent(void);

     int
     getprotoent_r(struct protoent *protoent,
	 struct	protoent_data *protoent_data);

     struct protoent *
     getprotobyname(const char *name);

     int
     getprotobyname_r(const char *name,	struct protoent	*protoent,
	 struct	protoent_data *protoent_data);

     struct protoent *
     getprotobynumber(int proto);

     int
     getprotobynumber_r(int proto, struct protoent *protoent,
	 struct	protoent_data *protoent_data);

     void
     setprotoent(int stayopen);

     void
     setprotoent_r(int stayopen, struct	protoent_data *protoent_data);

     void
     endprotoent(void);

     void
     endprotoent_r(struct protoent_data	*protoent_data);

DESCRIPTION
     The getprotoent(),	getprotobyname(), and getprotobynumber() functions
     each return a pointer to an object	with the following structure contain-
     ing the broken-out	fields of a line in the	network	protocol database,
     /etc/protocols.

	   struct  protoent {
		   char	   *p_name;	   /* official name of protocol	*/
		   char	   **p_aliases;	   /* alias list */
		   int	   p_proto;	   /* protocol number */
	   };

     The members of this structure are:

     p_name	The official name of the protocol.

     p_aliases	A null-terminated list of alternate names for the protocol.

     p_proto	The protocol number.

     The getprotoent() function	reads the next line of the file, opening the
     file if necessary.

     The setprotoent() function	opens and rewinds the file.  If	the stayopen
     flag is non-zero, the protocol database will not be closed	after each
     call to getprotobyname() or getprotobynumber().

     The endprotoent() function	closes the file.

     The getprotobyname() and getprotobynumber() functions sequentially	search
     from the beginning	of the file until a matching protocol name or protocol
     number is found, or until EOF is encountered.

     The getprotoent_r(), getprotobyport_r(), getprotobyname_r(),
     setprotoent_r(), and endprotoent_r() functions are	reentrant versions of
     the above functions that take a pointer to	a protoent_data	structure
     which is used to store state information.	The structure must be zero-
     filled before it is used and should be considered opaque for the sake of
     portability.

     The getprotoent_r(), getprotobyport_r(), and getprotobyname_r() functions
     also take a pointer to a protoent structure which is used to store	the
     results of	the database lookup.

RETURN VALUES
     The getprotoent(),	getprotobyport(), and getprotobyname() functions re-
     turn a pointer to a protoent structure on success or a null pointer if
     end-of-file is reached or an error	occurs.

     The getprotoent_r(), getprotobyport_r(), and getprotobyname_r() functions
     return 0 on success or -1 if end-of-file is reached or an error occurs.

FILES
     /etc/protocols

SEE ALSO
     protocols(5)

STANDARDS
     The getprotoent(),	getprotobynumber(), getprotobyname(), setprotoent(),
     and endprotoent() functions conform to IEEE Std 1003.1-2004 ("POSIX.1").

     The getprotoent_r(), getprotobyport_r(), getprotobyname_r(),
     setprotoent_r(), and endprotoent_r() functions are	not currently stan-
     dardized.	This implementation follows the	API used by HP,	IBM, and Digi-
     tal.

HISTORY
     The getprotoent(),	getprotobynumber(), getprotobyname(), setprotoent(),
     and endprotoent() functions appeared in 4.2BSD.

     The getprotoent_r(), getprotobyport_r(), getprotobyname_r(),
     setprotoent_r(), and endprotoent_r() functions appeared in	OpenBSD	3.7.

BUGS
     The non-reentrant functions use a static data space; if the data is
     needed for	future use, it should be copied	before any subsequent calls
     overwrite it.  Only the Internet protocols	are currently understood.

FreeBSD	13.0			 June 5, 2013			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | FILES | SEE ALSO | STANDARDS | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=getprotoent&sektion=3&manpath=OpenBSD+6.9>

home | help