IPX(3)

명칭
ipx_addr, ipx_ntoa - IPX 어드레스 변환 routine

프로그램 라이브러리
libipx

서식
<sys/types.h> <netipx/ipx.h> struct ipx_addr ipx_addr(const char *cp) char * ipx_ntoa(struct ipx_addr ipx)

해설
ipx_addr() routine는 IPX 주소를 표현하는 캐릭터 라인을 해석해, 시스템 콜에 건네주는데 적합한 바이너리 정보를 돌려줍니다. ipx_ntoa() routine는 IPX 주소를 인수에 있어, 주소를 일반적으로 사용되는 다음과 같은 표기법으로 기술했다 ASCII 캐릭터 라인으로서 돌려줍니다:

<네트워크 번호>. <호스트 번호>. <포트 번호>

뒤에 도착하는 0 이 되는 필드는 억제되어 각 번호는 ipx_addr() 의 입력에 적절한 16 진수의 형식에서 인자됩니다. 10 진수를 넘는 숫자가 나타나지 않는 필드는 마지막에 ‘H’ 하지만 부가됩니다.

ipx_addr() (와)과 일반적으로 사용되는 대부분의 형식과의 호환성의 확보에 노력이 따라져 왔습니다. 최초로, 주소는 피리어드 ‘’. , 코론 ‘’: , 파운드 기호 ‘#’ 중에서 선택한 단일의 separator로 1 필드에서 3 필드에 분할됩니다. 다음에, 각 필드에 도착해 바이트 separator (코론 또는 피리어드 ) 의 유무를 조사합니다. 바이트 separator가 있는 경우는, 분리된 바이트 필드는 16 진수의 니블로서 해석됩니다. 전체는 네트워크순서에서의 바이트 상위에 0 을 확장한 아르바이트열이 네트워크의 바이트순서로 해석됩니다. 다음에, 필드에서의 하이픈의 유무를 조사합니다. 하이픈이 있는 경우는 필드는 하이픈으로 1000 의 위를 단락짓는 10 진수 표기의 수이다고 보여집니다. 다음에, 필드는 이하와 같은 방식으로 수라고 해 해석됩니다. 즉, (C 와 같이 ) 선행한다 ‘0x’ (이)나, (Mesa 와 같이 ) 후속의 ‘H’ (이)가 있는 경우, 또는 10 진수를 넘는 숫자가 있는 경우에는, 필드는 16 진수이다고 해석됩니다. 선행한다 ‘0’ (이)가 있어, 한편 8 진수를 넘는 숫자가 없는 경우에는, 필드는 8 진수이다고 해석됩니다. 어느 것에도 해당하지 않는 경우에는, 10 진수로서 변환됩니다.

반환값
없음 ( 버그 (을)를 참조 ) .

관련 항목
hosts(5), networks(5)

역사
전신이다 ns_addr() 함수와 ns_toa() 함수는 4.3BSD 그리고 등장했습니다.

버그
ipx_ntoa() 함수가 돌려주는 캐릭터 라인은 static 메모리 area에 존재합니다. ipx_addr() 함수는 입력의 부적절한 형식을 진단해야 합니다. 더욱, 이 버그 진단을 알기 위한 애매함이 없는 방책이 필요합니다.