tail head cat sleep
QR code linking to this page

Man page  — BINDRESVPORT

명칭

bindresvport, bindresvport_sa – 특권 IP 포트에 소켓을 바인드 한다

내용

서식

#include <rpc/rpc.h>

int
bindresvport(int sd, struct sockaddr_in *sin);

int
bindresvport_sa(int sd, struct sockaddr *sa);

해설

bindresvport (와)과 bindresvport_sa (은)는, 소켓 기술자를, 특권 IP 포트, 즉 범위 0 ~ 1023 의 포토에 결합하기 위해서 사용됩니다.

root 만이 특권 포트에 결합할 수 있습니다. 이 호출은 다른 유저에 대해서는 처리 실패합니다.

sin 하지만 누르포인타가 아닌 경우, sin->sin_family sd 에 의해 건네받는 소켓의 주소 패밀리로 초기화한다 필요가 있습니다. sin->sin_port 의 값이 0 이 아닌 경우, bindresvport() (은)는, 지정한 포트를 사용하려고 합니다. 거기에 실패하면(자), 다른 특권 첨부 포트를 자동적으로 선택합니다.

sin 에 누르포인타를 건네주는 것은 정당합니다. 이 경우, 호출측은 bindresvport() 하지만 주운 포트 번호를 얻을 수 없습니다.

bindresvport() 의 함수 prototype는, AF_INET 소켓에 특화하고 있습니다. bindresvport_sa() (은)는, 보다 중립적인 함수 prototype를 가집니다만, 정확하게 똑같이 동작합니다. 양쪽 모두의 함수라고도 정확하게 같은 거동을 나타내는 것으로, 양쪽 모두 AF_INET 소켓과 같게, AF_INET6 소켓을 서포트하는 것에 주의해 주세요.

반환값

bindresvport() (와)과 bindresvport_sa() (은)는, 처리가 성공하면(자) 값 0 을 돌려줍니다. 그렇지 않은 경우는 -1 이 돌려주어 에러를 나타내기 위해서(때문에) errno 하지만 설정됩니다.

에러

bindresvport() (와)과 bindresvport_sa() 함수는 다음의 경우에 실패합니다.
[EBADF]
  sd 하지만 유효한 기술자가 아닙니다.
[ENOTSOCK]
  sd (은)는 소켓이 아닙니다.
[EADDRNOTAVAIL]
  지정된 주소는 이 로컬 머신으로부터 이용 가능하지는 않습니다.
[EADDRINUSE]
  지정된 주소는 벌써 사용중입니다.
[EINVAL]
  소켓은 벌써 있는 주소에 바인드 되고 있습니다, 또는, 소켓 패밀리와 지정된 주소의 패밀리가 일치하지 않습니다.
[EACCES]
  요구된 주소는 보호되고 있어 현재의 유저는, 거기에 액세스 하기에는 부적절한 퍼미션을 가지고 있습니다.
[EFAULT]
  name 파라미터는, 유저 address 공간의 정당한 부분에 존재하지 않습니다.
[ENOBUFS]
  시스템에는, 이 조작을 실행하기 위해서 충분한 자원이 없습니다.
[EPFNOSUPPORT]
  시스템에 프로토콜 패밀리가 설정되어 있지 않은지, 프로토콜 패밀리에 대한 실장이 존재하지 않는지, 인수의 사이에 주소 패밀리가 일치하지 않습니다.

관련 항목

bind(2), socket(2), rresvport(3), rresvport_af(3)

BINDRESVPORT (3) January 27, 2000

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.

The last good thing written in C was Franz Schubert's Symphony #9.
— Erwin Dietrich