# getnetent_r

## NAME



           getnetent_r, getnetbyname_r, getnetbyaddr_r - get network entry
           (reentrant)
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <netdb.h>**
    
           **int getnetent_r(** size_t size;
                           **struct netent *restrict** _result_buf_**,**
                           **char** _buf_**[restrict** _size_**], size_t** _size_**,**
                           **struct netent **restrict** _result_**,**
                           **int *restrict** _h_errnop_**);**
           **int getnetbyname_r(** size_t size;
                           **const char *restrict** _name_**,**
                           **struct netent *restrict** _result_buf_**,**
                           **char** _buf_**[restrict** _size_**], size_t** _size_**,**
                           **struct netent **restrict** _result_**,**
                           **int *restrict** _h_errnop_**);**
           **int getnetbyaddr_r(** size_t size;
                           **uint32_t** _net_**, int** _type_**,**
                           **struct netent *restrict** _result_buf_**,**
                           **char** _buf_**[restrict** _size_**], size_t** _size_**,**
                           **struct netent **restrict** _result_**,**
                           **int *restrict** _h_errnop_**);**
    
       Feature Test Macro Requirements for glibc (see
       feature_test_macros(7)):
    
           **getnetent_r**(), **getnetbyname_r**(), **getnetbyaddr_r**():
               Since glibc 2.19:
                   _DEFAULT_SOURCE
               glibc 2.19 and earlier:
                   _BSD_SOURCE || _SVID_SOURCE
    


## DESCRIPTION



           The **getnetent_r**(), **getnetbyname_r**(), and **getnetbyaddr_r**()
           functions are the reentrant equivalents of, respectively,
           getnetent(3), getnetbyname(3), and **getnetbynumber**(3).  They differ
           in the way that the _netent_ structure is returned, and in the
           function calling signature and return value.  This manual page
           describes just the differences from the nonreentrant functions.
    
           Instead of returning a pointer to a statically allocated _netent_
           structure as the function result, these functions copy the
           structure into the location pointed to by _result_buf_.
    
           The _buf_ array is used to store the string fields pointed to by the
           returned _netent_ structure.  (The nonreentrant functions allocate
           these strings in static storage.)  The size of this array is
           specified in _size_.  If _buf_ is too small, the call fails with the
           error **ERANGE** , and the caller must try again with a larger buffer.
           (A buffer of size 1024 bytes should be sufficient for most
           applications.)
    
           If the function call successfully obtains a network record, then
           _*result_ is set pointing to _result_buf_ ; otherwise, _*result_ is set
           to NULL.
    
           The buffer pointed to by _h_errnop_ is used to return the value that
           would be stored in the global variable _h_errno_ by the nonreentrant
           versions of these functions.
    


## RETURN VALUE



           On success, these functions return 0.  On error, they return one
           of the positive error numbers listed in ERRORS.
    
           On error, record not found (**getnetbyname_r**(), **getnetbyaddr_r**()),
           or end of input (**getnetent_r**()) _result_ is set to NULL.
    


## ERRORS



           **ENOENT**(**getnetent_r**()) No more records in database.
    
           **ERANGE** _buf_ is too small.  Try again with a larger buffer (and
                  increased _size_).
    


## ATTRIBUTES



           For an explanation of the terms used in this section, see
           attributes(7).
           ┌───────────────────────────────┬───────────────┬────────────────┐
           │ **Interface** │ **Attribute** │ **Value** │
           ├───────────────────────────────┼───────────────┼────────────────┤
           │ **getnetent_r**(),                │ Thread safety │ MT-Safe locale │
           │ **getnetbyname_r**(),             │               │                │
           │ **getnetbyaddr_r**()              │               │                │
           └───────────────────────────────┴───────────────┴────────────────┘
    


## VERSIONS



           Functions with similar names exist on some other systems, though
           typically with different calling signatures.
    


## STANDARDS



           GNU.
    


* * *