1
파일 설명자를 비 차단으로 설정하는 두 가지 방법이 있습니다.파일 설명자를 비 차단으로 설정하는 방법은 무엇입니까?
fcntl(conn_fd, F_SETFD, (fcntl(conn_fd, F_GETFD, 0)|O_NONBLOCK));
또는
fcntl(conn_fd, F_SETFD, (fcntl(conn_fd, F_GETFD)|O_NONBLOCK));
및
void setnonblocking(int sock) {
int opt;
opt = fcntl(sock, F_GETFL);
if (opt < 0) {
printf("fcntl(F_GETFL) fail.");
}
opt |= O_NONBLOCK;
if (fcntl(sock, F_SETFL, opt) < 0) {
printf("fcntl(F_SETFL) fail.");
}
}
기능 setnonblocking는 epoll에 새를 얻을 때 사용 파일 기술자가 다른 안되을 나누었다 비 차단 설정할 수 있습니다 이유
연결.
필자는 F_SETFD를 F_SETFL으로 변경하고 작동합니다. 기존 플래그의 상태가 필요합니다 .thx! – zhangkai