fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD, 0)O_NONBLOCK) == -1)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD, 0)O_NONBLOCK) == -1)相关的知识,希望对你有一定的参考价值。
网上看的代码,意思是设置文件sockfd 非阻塞,,但是第二个fcntl里的参数F_GETFD是不是错了,应该换成F_GETFL?
参考技术A 确实是用F_GETFL,但是很多人都用成F_GETFD。我们一个师兄很牛的一个人,也用错了。网上好多人都你抄我,我抄你。
但是fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD, 0)|O_NONBLOCK)最后执行的结果应该是一样的,确实设为非阻塞了。所以很多人都认为正确的。唉。steven先生那本书写的很明明白白了。就没人仔细看吗。 参考技术B 应该是F_GETFL。
F_GETFD/SETFD很少用到,只跟FD_CLOEXEC有关。本回答被提问者采纳
以上是关于fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD, 0)O_NONBLOCK) == -1)的主要内容,如果未能解决你的问题,请参考以下文章