나는 BSD 소켓 프로그래밍의 맥락에서 걸쳐 실행할 때마다 예와 토론에서는 I를 블로킹에 파일 기술자를 설정하기 위해 권장되는 방법은 / O 모드가 사용하고있는 것 같습니다 O_NONBLOCK
플래그를 위해 fcntl()
예를 들면,
int flags = fcntl(fd, F_GETFL, 0);
fcntl(fd, F_SETFL, flags | O_NONBLOCK);
저는 10 년 넘게 UNIX에서 네트워크 프로그래밍을 해왔고 항상이 FIONBIO ioctl()
호출을 사용 했습니다.
int opt = 1;
ioctl(fd, FIONBIO, &opt);
그 이유에 대해 정말 많이 생각하지 않았습니다. 그렇게 배웠습니다.
누구든지 둘 중 하나의 가능한 장점에 대한 논평이 있습니까? 나는 이식성 궤적이 다소 다를 것이라고 생각하지만 ioctl_list(2)
개별 ioctl
방법의 측면에 대해 말하지 않는 정도를 알지 못합니다 .