GETNETENT(3)

명칭
getnetent, getnetbyaddr, getnetbyname, setnetent, endnetent - 네트워크 엔트리의 취득

프로그램 라이브러리
libc

서식
<netdb.h> struct netent * getnetent(void) struct netent * getnetbyname(const char *name) struct netent * getnetbyaddr(unsigned long net, int type) void setnetent(int stayopen) void endnetent(void)

해설
getnetent(), getnetbyname(), getnetbyaddr() 함수는 각각, 다음에 나타내는 구조를 가지는 오브젝트에의 포인터를 돌려줍니다. 구조체에는, 네트워크 데이타베이스 /etc/network 에 있는 행의 내역 필드가 포함됩니다.

    struct  netent {
            char            *n_name;        /* 네트워크의 정식명 */
            char            **n_aliases;    /* 별명 리스트 */
            int             n_addrtype;     /* 넷 번호의 타입 */
            unsigned long   n_net;          /* 넷 번호 */
    };

이 구조체의 멤버는 다음과 같습니다.

n_name
    네트워크의 정식명.

n_aliases
    네트워크의 별명 (앨리어스(alias))의 0 으로 끝나는 리스트.

n_addrtype
    돌려주어지는 네트워크 번호의 타입이며, 현재는 AF_INET 뿐입니다.

n_net
    네트워크 번호. 네트워크 번호는, 머신 바이트 오더로 돌려주어집니다.

getnetent() 함수는 파일의 다음의 행을 읽어들입니다. 이 때, 필요하면 목적의 파일을 오픈합니다.

setnetent() 함수는, 목적의 파일을 오픈해 되감기 합니다. stayopen 플래그가 0 이 아니면, getnetbyname() 또는 getnetbyaddr() 의 각각의 호출의 후에도, 넷 데이타베이스는 클로우즈 되지 않습니다.

endnetent() 함수는 파일을 클로우즈 합니다.

getnetbyname() 함수 및 getnetbyaddr() (은)는, 적합하는 넷명 또는 넷 주소 및 타입이 발견되는지, 또는 EOF 에 이를 때까지, 파일을 최초부터 차례차례 검색합니다. type 하 AF_INET (이)가 아니면 안됩니다. 네트워크 번호는 호스트 오더로 돌려주어집니다.

관련 파일
/etc/networks

진단
EOF 또는 에러의 경우는, 누르포인타 (0)가 돌아갑니다.

관련 항목
networks(5)

역사
getnetent(), getnetbyaddr(), getnetbyname(), setnetent(), endnetent() 함수는, 4.2BSD 그리고 등장했습니다.

버그
이러한 함수로 사용되는 데이터 공간은 정적입니다. 다음에 이 데이터를 사용할 필요가 있는 경우는, 이후의 이것들 함수의 호출로 데이터가 덧쓰기되기 전에, 카피해 보존할 필요가 있습니다. 데이터로서 받아들여지는 것은 현재, 인터넷 네트워크 번호 뿐입니다. 네트워크 번호가 32 비트를 넘지 않는 범위에 들어가고 있다고 기대하는 것은, 아마 너무 소박합니다.