| GETPROTOENT(3) |
AerieBSD 1.0 Refernce 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>
structprotoent *
getprotoent(void);
int
getprotoent_r(struct protoent *protoent, struct protoent_data *protoent_data);
structprotoent *
getprotobyname(const char *name);
int
getprotobyname_r(const char *name, struct protoent *protoent, struct protoent_data *protoent_data);
structprotoent *
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
containing 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 return 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
The
getprotoent_r();,
getprotobyport_r();,
getprotobyname_r();,
setprotoent_r();,
and
endprotoent_r();
functions are not currently standardized.
This implementation follows the API used by HP, IBM, and Digital.
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.
| AerieBSD 1.0 Reference Manual |
August 26 2008 |
GETPROTOENT(3) |