关于非阻塞下fgets为什么不能使用?

时间:2022-09-30 16:07:04
“对于非阻塞的IO模型, 因为 Nonblocking,所以在 write() 或是 send() 时满了需要自己 Buffering。因为 Nonblocking,所以不能使用 fgets() 或是其他类似的 function。”

请问为什么非阻塞下不能使用fgets呢?

3 个解决方案

#1


帮顶  学习...

#2


引用楼主 lantianye 的回复:
“对于非阻塞的IO模型, 因为 Nonblocking,所以在 write() 或是 send() 时满了需要自己 Buffering。因为 Nonblocking,所以不能使用 fgets() 或是其他类似的 function。”

请问为什么非阻塞下不能使用fgets呢?

那个fgets函数不是阻塞的吗?
你设置了非阻塞IO,又要使用阻塞的输入函数?

#3


引用 2 楼 wesleyluo 的回复:
那个fgets函数不是阻塞的吗?
你设置了非阻塞IO,又要使用阻塞……


对的,为什么不能用,可能跟fgets内部实现有关

#1


帮顶  学习...

#2


引用楼主 lantianye 的回复:
“对于非阻塞的IO模型, 因为 Nonblocking,所以在 write() 或是 send() 时满了需要自己 Buffering。因为 Nonblocking,所以不能使用 fgets() 或是其他类似的 function。”

请问为什么非阻塞下不能使用fgets呢?

那个fgets函数不是阻塞的吗?
你设置了非阻塞IO,又要使用阻塞的输入函数?

#3


引用 2 楼 wesleyluo 的回复:
那个fgets函数不是阻塞的吗?
你设置了非阻塞IO,又要使用阻塞……


对的,为什么不能用,可能跟fgets内部实现有关