但是fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD, 0)|O_NONBLOCK)最后执行的结果应该是一样的,确实设为非阻塞了。所以很多人都认为正确的。唉。steven先生那本书写的很明明白白了。就没人仔细看吗。应该是F_GETFL。F_GETFD/SETFD很少用到,只跟FD_CLOEXEC有关。